摘要:定义贪婪模式匹配尽可能多的字符非贪婪模式匹配尽可能少的字符在的正则表达式中,通过在修饰匹配次数的符号后面加一个,即非贪婪模式,默认情况下是贪婪模式。
定义
贪婪模式:匹配尽可能多的字符
非贪婪模式:匹配尽可能少的字符
在Java的正则表达式中,通过在修饰匹配次数的符号后面加一个?,即非贪婪模式,默认情况下是贪婪模式。
表示匹配次数的符号有:
</>复制代码
.? # 任意字符匹配1次或0次
.* # 任意字符匹配0次或多次
.+ # 任意字符匹配1次或多次
.{n} # 任意字符匹配n次
.{n,} # 任意字符匹配至少n次
.{n,m} # 任意字符匹配至少n次,至多m次
代码
</>复制代码
public static void main(String[] args) {
String input = "aaaabc";
String regex1 = "a{2,3}"; // 贪婪模式
Pattern p1 = Pattern.compile(regex1);
Matcher m1 = p1.matcher(input);
while (m1.find()) {
System.out.println(m1.group());
}
System.out.println("------------------");
String regex2 = "a{2,3}?"; // 非贪婪模式
Pattern p2 = Pattern.compile(regex2);
Matcher m2 = p2.matcher(input);
while (m2.find()) {
System.out.println(m2.group());
}
}
输出:
原文链接</>复制代码
aaa
------------------
aa
aa
https://segmentfault.com/a/11...
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/70613.html
摘要:举例一使用这个正则,打印结果为使用这个正则,打印结果为举例二打印结果如下过滤标签你好美丽的上海想转化成你好,美丽的上海如果后面加,就会进入非贪婪模式。如果后面不加,就会进入贪婪模式,结果为上海。你好美丽的上海。 1.创建一个正则表达式 方法一:使用一个正则表达式字面量,其由包含在斜杠之间的模式组成。 var reg1 = /a/; var reg2 = /ab+c/; 方法二:调用Re...
摘要:举例一使用这个正则,打印结果为使用这个正则,打印结果为举例二打印结果如下过滤标签你好美丽的上海想转化成你好,美丽的上海如果后面加,就会进入非贪婪模式。如果后面不加,就会进入贪婪模式,结果为上海。你好美丽的上海。 1.创建一个正则表达式 方法一:使用一个正则表达式字面量,其由包含在斜杠之间的模式组成。 var reg1 = /a/; var reg2 = /ab+c/; 方法二:调用Re...
摘要:举例一使用这个正则,打印结果为使用这个正则,打印结果为举例二打印结果如下过滤标签你好美丽的上海想转化成你好,美丽的上海如果后面加,就会进入非贪婪模式。如果后面不加,就会进入贪婪模式,结果为上海。你好美丽的上海。 1.创建一个正则表达式 方法一:使用一个正则表达式字面量,其由包含在斜杠之间的模式组成。 var reg1 = /a/; var reg2 = /ab+c/; 方法二:调用Re...
摘要:程序员的正则表达式,医生的处方和道士的鬼画符,都是利器。其实,正则表达式是一门语言,有自己独特的语法,还拥有自己的解释器。但是,如果正则表达式是动态的,是根据变量来定义的,那么,只能使用第二种构造函数的方式。 前言 作为一个程序员,要出去装逼,手中必备的技能就是正则表达式。程序员的正则表达式,医生的处方和道士的鬼画符,都是利器。 在js中,很多的场景需要去使用到它(毕竟,js刚刚诞生的...
阅读 4172·2021-09-06 15:00
阅读 2266·2019-08-30 15:53
阅读 3383·2019-08-23 16:44
阅读 1048·2019-08-23 15:19
阅读 1497·2019-08-23 12:27
阅读 4309·2019-08-23 11:30
阅读 708·2019-08-23 10:33
阅读 467·2019-08-22 16:05