1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > java正则匹配第一个符合的_java正则贪婪匹配指定字符开头和结尾或括号中内容...

java正则匹配第一个符合的_java正则贪婪匹配指定字符开头和结尾或括号中内容...

时间:2023-02-11 19:13:09

相关推荐

java正则匹配第一个符合的_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());

输出结果:

低风险

中高风险

人行与申请提供手机号码不一致

中风险

不符合增信退回要求

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