之间有什么区别?
(.+?)
和
(.*?)
当我在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