扫码关注官方订阅号
Java使用正则匹配捕捉1 Pattern p = Pattern.compile("name="sign" value="(.*)"/>");2 Pattern p = Pattern.compile("name="sign" value=*"(.?)**"/>");第二个比第一个多了一个?号,请问其中区别是什么
小伙看你根骨奇佳,潜力无限,来学PHP伐。
贪婪和非贪婪的区别。
简单来说,非贪婪是匹配到就停,不管后面还有没有,贪婪是只要后面还符合,就不会停。
前者在找到一个匹配之后就会停止,而后者会找到所有匹配的目标。
这个问题涉及正则表达式中贪婪模式与懒惰模式(也称为非贪婪模式)首先来看看这两个的定义
贪婪模式,最大限度匹配*,+,'{n,}',.*都属于贪婪模式,所谓最大限度匹配,我举个例子
*
+
.*
var pattern = /a.*e/ console.log("abcd fsdfsdfsesfdfsdfsesdfedfsdfses".match(pattern)); //结果为abcd fsdfsdfsesfdfsdfsesdfedfsdfse
懒惰模式,在匹配成功的前提下,尽可能少的去匹配。还是上面这个例子:
var pattern = /a.*?e/ console.log("abcd fsdfsdfsesfdfsdfsesdfedfsdfses".match(pattern)); //结果为abcd fsdfsdfse
?会选取最小的匹配的。
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
贪婪和非贪婪的区别。
简单来说,非贪婪是匹配到就停,不管后面还有没有,贪婪是只要后面还符合,就不会停。
前者在找到一个匹配之后就会停止,而后者会找到所有匹配的目标。
这个问题涉及正则表达式中贪婪模式与懒惰模式(也称为非贪婪模式)
首先来看看这两个的定义
贪婪模式,最大限度匹配
*,+,'{n,}',.*都属于贪婪模式,所谓最大限度匹配,我举个例子懒惰模式,在匹配成功的前提下,尽可能少的去匹配。
还是上面这个例子:
?会选取最小的匹配的。