内容简介:有人可以解释一下[0-9]和[0-9]之间的区别是什么?翻译自:https://stackoverflow.com/questions/6186569/what-is-the-difference-between-0-9-and-0-9
有人可以解释一下[0-9]和[0-9]之间的区别是什么?
PHP用于正则表达式的PCRE引擎支持 “possessive quantifiers”
:
Quantifiers followed by +
are “possessive”. They eat as many characters as possible and don’t return to match the rest of the pattern. Thus .*abc
matches "aabc"
but .*+abc
doesn’t because .*+
eats the whole string. Possessive quantifiers can be used to speed up processing.
和:
If the 07001 option is set (an option which is not available in Perl) then the quantifiers are not greedy by default, but individual ones can be made greedy by following them with a question mark. In other words, it inverts the default behaviour.
不同之处在于:
/[0-9]+/ - one or more digits; greediness defined by the PCRE_UNGREEDY option /[0-9]+?/ - one or more digits, but as few as possible (non-greedy) /[0-9]++/ - one or more digits, but as many as possible (greedy, default)
This snippet 在贪婪默认模式下可视化差异.请注意,第一个片段在功能上与最后一个片段相同,因为默认情况下已经应用了(在某种意义上)附加片段.
This snippet 在应用PCRE_UNGREEDY(默认为默认模式)时可视化差异.查看默认值是如何反转的.
翻译自:https://stackoverflow.com/questions/6186569/what-is-the-difference-between-0-9-and-0-9
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。