正则表达式小记

正则遇到一个记录一个好了

 

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开头的字符匹配一次

.*? 匹配后面所有字符一次

?=& 匹配到&截止,匹配第一个&

 

①做正则匹配的起因是我的逻辑里需要替换appId和sourceId里的值,每次替换和被替换都不一样,所以采取正则匹配替换

②使用正则后的内容,需要先使用find()方法查出来之后再使用,否则会报错

 

posted @ 2022-01-23 17:24  小町  阅读(44)  评论(0编辑  收藏  举报