我正在阅读PCRE文档,它指的是占有量词,但没有明确或具体地定义它们。我知道贪婪的量词是什么,我知道什么是懒惰的量化器。但占有欲?
当PCRE man page使用该术语而不定义它时,Friedl's book似乎在作弊。该手册页明确指出术语占有量词首先在{{3}}中定义。嗯,这很好,但是我没有Friedl的书,在阅读手册页之间,我无法弄清楚占有量词与贪婪词的区别。
答案 0 :(得分:12)
也许最好的起点是Regex Tutorial - Possessive Quantifiers:
讨论重复时 我解释说,运营商或量词 贪婪和懒惰之间的区别 重复。贪婪和懒惰 确定正则表达式的顺序 引擎尝试可能的排列 正则表达式模式。贪心 量词将首先尝试重复 令牌尽可能多次, 并逐渐放弃比赛 引擎回溯找到一个整体 比赛。懒惰的量词将首先出现 重复令牌的次数为 要求,并逐步扩大 匹配作为引擎回溯通过 正则表达式找到整体匹配。
占有量词是防止正则表达式引擎的一种方法 尝试所有排列。这主要用于提高性能 原因。您还可以使用占有量词来消除某些 匹配。