所有格量词regex的实际应用
我理解所有格量词regex的实际应用,regex,regex-greedy,reluctant-quantifiers,Regex,Regex Greedy,Reluctant Quantifiers,我理解*(贪婪量词)回溯并试图找到匹配项。而且*+(所有格量词)不会回溯 然而,我经常使用*和\*?但不知道何时使用*+ 有人能给出一个应该使用*+的情况或例子吗 请举例说明 编辑: 我已经完成了理论部分,我重复一遍,我理解它是如何工作的。我只需要一个匹配所有格量词(*+)的示例,有许多(依赖正则表达式的)实现细节,因此很难概括这些内容。例如,使用^...+可以在字符串“上找到匹配项。使用^.*+.++您不需要。因为第一个匹配器已经吞下了整串空白 如果不希望正则表达式的下一部分意外地与上一部分匹
*
(贪婪量词)回溯并试图找到匹配项。而且*+
(所有格量词)不会回溯
然而,我经常使用*
和\*?
但不知道何时使用*+
有人能给出一个应该使用*+
的情况或例子吗
请举例说明
编辑:
我已经完成了理论部分,我重复一遍,我理解它是如何工作的。我只需要一个匹配所有格量词(*+
)的示例,有许多(依赖正则表达式的)实现细节,因此很难概括这些内容。例如,使用^...+
可以在字符串“
上找到匹配项。使用^.*+.++
您不需要。因为第一个匹配器已经吞下了整串空白
如果不希望正则表达式的下一部分意外地与上一部分匹配,则可以在任何情况下使用它
您可以在中使用PCRE设置来测试这一点。请注意,如果所有格模式匹配,那么贪婪模式也会匹配。反之亦然。因此,如果你想把你的匹配限制在一个较小的集合中,你可以使用所有格量词
其次,当输入字符串与模式不匹配时,所有格量词很有用。因为他们“吃”了他们的输入并且没有回溯,所以他们会更快地发现不匹配。在极端情况下,这会调用并关闭站点(包括StackOverflow,请参阅)。对于那些标记可能重复的站点,请注意,我了解它们的工作原理。我无法理解所有格量词的示例/实际用法使用所有格量词修复正则表达式(它与周围的原子群相同)@ArunGowdru“可能的Dup”包含一个
*+
示例,并继续与其他示例进行深入对比。这就是你想要的吗?好的。我今天碰到一个。您能举一个与。*+匹配的例子吗?这样我就可以算出它了?一个空字符串或任意数量的空白将匹配它。您不会注意到*
的区别,这是错误的。这里的两个正则表达式将给出相同的结果。第一部分,*
或*+
将匹配整个字符串。最后的*
将没有任何匹配项,但它不需要匹配任何内容。@Yay295感谢您指出这一点,我把正则表达式写错了。我修正了答案。