以一种可以理解的方式,这两个术语是什么?
最佳答案
贪婪会尽可能多地消耗。从 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/