内容简介:有人可以解释一下[0-9]和[0-9]之间的区别是什么?翻译自:https://stackoverflow.com/questions/6186569/what-is-the-difference-between-0-9-and-0-9
有人可以解释一下[0-9]和[0-9]之间的区别是什么?
:
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
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
C语言程序设计现代方法
K. N. King / 人民邮电出版社 / 2007-11 / 55.00元
《C语言程序设计现代方法》最主要的一个目的就是通过一种“现代方法”来介绍C语言,实现客观评价C语言、强调标准化C语言、强调软件工程、不再强调“手工优化”、强调与c++语言的兼容性的目标。《C语言程序设计现代方法》分为C语言的基础特性。C语言的高级特性、C语言标准库和参考资料4个部分。每章都有“问与答”小节,给出一系列与本章内容相关的问题及其答案,此外还包含适量的习题。一起来看看 《C语言程序设计现代方法》 这本书的介绍吧!