温馨提示:本文翻译自stackoverflow.com,查看原文请点击:php - Regex plus vs star difference?
php regex

php - 正则表达式加上明星区别?

发布于 2020-03-27 10:47:40

之间有什么区别?

(.+?)

(.*?)

当我在php preg_match正则表达式中使用它时

查看更多

查看更多

提问者
David19801
被浏览
208
4,091 2016-10-12 22:46

它们称为量词。

* 0个或多个前面的表达式

+ 前一个或多个表达式

默认情况下,量词是贪婪的,这意味着它匹配尽可能多的字符。

?一个量词后改变行为,使这个量词“ungreedy”,意味着它会匹配尽可能少。

贪婪/贪婪的例子

例如,在字符串“ abab ”上

a.*b 将匹配“ abab”(preg_match_all将返回一个匹配项,即“ abab”)

a.*?b仅匹配开头的“ ab”(preg_match_all将返回两个匹配“ ab”)

您可以在线测试正则表达式,例如在Regexr上,请参见此处的贪婪示例