我正在阅读PCRE文档,它提到了"possessive quantifiers",但并没有明确定义它们。我知道什么是贪婪量词和懒惰量词,但"possessive"是什么意思呢? 看起来PCRE手册在使用这个术语时并没有对其进行定义,有点作弊的感觉。手册明确声明术语"possessive quantifiers"最初是在Friedl的书中定义的。很好,但我没有Friedl的书,在阅读手册时,我无法从字里行间找出区分占有量词和贪婪量词的方法。 ?=表示0或1次,贪婪 ??=表示0或1次,懒惰 ?+=表示0或1次,占有 '+'=表示1或多次,贪婪 +?=表示1或多次,懒惰 ++=表示1或多次,占有
也许最好的起点是正则表达式教程-占有量词:引用: 当讨论重复操作符或量词时,我解释了贪婪和懒惰重复之间的区别。贪婪和懒惰决定了正则表达式引擎尝试正则表达式模式的可能排列的顺序。贪婪量词将首先尝试尽可能多地重复标记,然后随着引擎回溯以查找整体匹配而逐渐放弃匹配。懒惰量词将首先根据需要尽可能少地重复标记,然后随着引擎回溯整个正则表达式以查找整体匹配而逐渐扩展匹配。引用: 占有量词是一种防止正则表达式引擎尝试所有排列的方法。这主要有助于提高性能。您还可以使用占有量词来消除某些匹配项。