正则表达式中贪婪与懒惰匹配:
例子:
String content = "12345645";
String rex_zj = "(^1[\\w|\\W]*5)" ; //匹配所有1开头到5的字符串
因为5前面为* ,则匹配为贪婪匹配,匹配到字符串为最长,所以结果为12345645
如果想匹配到第一个5结束,则为懒惰匹配 ,需要在5前面的*后添加一个?表示最短匹配
如下:String rex_zj = "(^1[\\w|\\W]*?5)" ;
Pattern pattern = Pattern.compile(rex_zj );
Matcher matcher = pattern.matcher(content );