有什么区别:
(.+?)
和
(.*?)
当我在我的 php 中使用它时 preg_match
正则表达式?
最佳答案
它们被称为量词。
*
0 个或多个前面的表达式
+
1 个或多个前面的表达式
默认情况下,量词是贪婪的,这意味着它匹配尽可能多的字符。
量词后的 ?
会更改行为以使该量词“不贪婪”,意味着它将尽可能少地匹配。
贪婪/不贪婪示例
例如字符串“abab”
a.*b
将匹配“abab”(preg_match_all 将返回一个匹配项,即“abab”)
而a.*?b
将仅匹配开头的“ab”(preg_match_all将返回两个匹配项“ab”)
您可以在线测试您的正则表达式,例如在 Regexr 上,see the greedy example here
关于php - 正则表达式 plus 与 star 的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54923168/