它们称为量词。
*
0个或多个前面的表达式
+
前一个或多个表达式
默认情况下,量词是贪婪的,这意味着它匹配尽可能多的字符。
在?
一个量词后改变行为,使这个量词“ungreedy”,意味着它会匹配尽可能少。
贪婪/贪婪的例子
例如,在字符串“ abab ”上
a.*b
将匹配“ abab”(preg_match_all将返回一个匹配项,即“ abab”)
而a.*?b
仅匹配开头的“ ab”(preg_match_all将返回两个匹配“ ab”)
您可以在线测试正则表达式,例如在Regexr上,请参见此处的贪婪示例
“懒惰”是“不舒服”的更常见术语
这个例子是不正确的。无论
(.+?)
和(.*?)
行为不同的正则表达式的不同位置a(.+?)
,(.+?)b
,a(.+?)b
,a(.*?)
,(.*?)b
,a(.*?)b
。