正则表达式加与星差?
有什么区别:
(.+?)
和
(.*?)
当我在我的php正则表达式中使用它时?preg_match
它们被称为量词。
*
上述表达式的 0 个或更多
+
前面的 1 个或多个表达式
默认情况下,量词是贪婪的,这意味着它匹配尽可能多的字符。
在量词改变行为以使该量词“不greed”之后,意味着它将尽可能少地匹配。?
示例贪婪/不贪婪
例如,在字符串“abab”上"
a.*b
将匹配“abab”(preg_match_all将返回一个匹配项,即“abab”)
while 将仅匹配起始“ab”(preg_match_all将返回两个匹配项,“ab”)a.*?b
您可以在线测试您的正则表达式,例如在正则表达式上,请参阅此处的贪婪示例
第一个 () 是一个或多个字符。第二个 () 是零个或多个字符。两者都是不贪婪的(),并且匹配任何东西()。+
*
?
.