正则遇到一个记录一个好了
1、截取某字符串中间部分
str="appId=XXX&autoType=1&clientSwitch=1&clientType=1&customerName=XXX&msgTimeStatus=0&msgType=1&nickName=XXX=&nightMode=2&openId=XXX&query=XXXX&roleId=5&sourceId=-XX&userSwitch=1"
需求要获取appId后面的值
String patternOldAppId = "(?<=appId=)(.*?)(?=&)"; Pattern a = Pattern.compile(patternOldAppId); Matcher oldAppId = a.matcher(str);
//在str中匹配到需要的字符串,再进行替换 boolean b = oldAppId.find(); str= str.replace(oldAppId.group(0),actulAppId);
?<= appId 以appId开头的字符匹配一次
.*? 匹配后面所有字符一次
?=& 匹配到&截止,匹配第一个&