这两个术语是什么?可以理解吗?
最佳答案
贪婪会尽可能多地消耗。来自 http://www.regular-expressions.info/repeat.html我们看到尝试将 HTML 标签与 <.+>
匹配的示例。假设您有以下内容:
<em>Hello World</em>
您可能认为<.+>
(.
表示任何非换行符,+
表示一个或多个)仅匹配<em>
和 </em>
,而实际上它会非常贪婪,并从第一个 <
开始到最后>
。这意味着它将匹配 <em>Hello World</em>
而不是你想要的。
让它变得懒惰(<.+?>
)可以防止这种情况发生。通过添加?
+
之后,我们告诉它重复尽可能少的次数,所以第一个 >
它遇到的是我们想要停止匹配的地方。
我鼓励您下载RegExr ,一个很棒的工具,可以帮助您探索正则表达式 - 我一直使用它。
关于regex - 'lazy' 和 'greedy' 在正则表达式中意味着什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2301285/