1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > java正则贪婪匹配指定字符开头和结尾或括号中内容

java正则贪婪匹配指定字符开头和结尾或括号中内容

时间:2023-12-13 07:56:18

相关推荐

java正则贪婪匹配指定字符开头和结尾或括号中内容

项目中需要这样二种场景,需要贪婪匹配一个字符串,按照相应的匹配规则,替换指定的字符。

一、场景一匹配规则

1.中括号开头紧接2位数字

2.中间部分任意

3.右中括号结尾

代码如下:

String str = "[05经销商风险等级:低风险][06客户户籍地风险等级:中高风险][06销售风险等级:中风险][01不符合增信退回要求][02人行与申请提供手机号码不一致]";//正则Pattern pattern=pile("\\[\\d{2}.*?\\]");Matcher matcher = pattern.matcher(str);StringBuffer stringBuffer = new StringBuffer(512);while (matcher.find()) {StringBuilder sb = new StringBuilder(matcher.group(0));System.out.println(matcher.group());if (StringUtils.isBlank(sb) || sb.length() <= 2) {continue;}//替换第2,3位为空sb.replace(1, 3, "");System.out.println(sb.toString());}输出结果:[05经销商风险等级:低风险][经销商风险等级:低风险][06客户户籍地风险等级:中高风险][客户户籍地风险等级:中高风险][06销售风险等级:中风险][销售风险等级:中风险][01不符合增信退回要求][不符合增信退回要求][02人行与申请提供手机号码不一致][人行与申请提供手机号码不一致]

二、场景二匹配规则

1.匹配()中的内容

代码如下:

//正则Pattern pattern = pile("(?<=\\()(.+?)(?=\\))");matcher = pattern.matcher("06客户户籍地风险等级(低风险)师12(中高风险)(人行与申请提供手机号码不一致)风险(中风险)01不符合增信退回要求(不符合增信退回要求)01不符合增信退回要求");while(matcher.find())System.out.println(matcher.group());输出结果:低风险中高风险人行与申请提供手机号码不一致中风险不符合增信退回要求

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。