Yis*_*hai 31 regex language-design regex-greedy
对于初学者编写正则表达式来说,这似乎是一个巨大的混乱源,可能会导致隐藏的性能问题,并且看起来典型的用例将是非贪婪的.
这只是出于遗留原因(它是如何首次完成的,每个实现都复制了),还是有原因的?
Dig*_*oss 11
部分答案可能涉及RE在实际计算中的起源.它们最初是来自自动机理论和形式语言理论的理论概念,直到Ken Thompson自己编写了一个真实的实现并在qed和ed中使用它们(1).
原始版本只有贪婪的语法,所以甚至没有决定.
在性能方面,由于回溯,懒惰量词并不总是更快:http://blog.stevenlevithan.com/archives/greedy-lazy-performance
至于实际的设计,我老实说不能说为什么量词在默认情况下是贪婪的,但我确实想知道什么样的控制字符会被用来使量词贪婪而不是懒惰.我认为?不会削减它:-)