小编典典

在正则表达式的上下文中,“懒惰”和“贪婪”是什么意思?

all

这两个术语是什么意思?


阅读 106

收藏
2022-03-03

共1个答案

小编典典

贪婪会尽可能地消耗。从http://www.regular-
expressions.info/repeat.html我们看到了尝试将 HTML 标记与<.+>. 假设您有以下内容:

<em>Hello World</em>

您可能认为<.+>(.表示 任何非换行符+表示 一个或多个 )
只会匹配<em></em>,而实际上它会非常贪婪,并且从第一个<到最后一个>。这意味着它将匹配<em>Hello World</em>而不是您想要的。

让它变得懒惰 ( <.+?>) 将防止这种情况发生。通过在?之后添加+,我们告诉它 尽可能少
地重复,所以>它遇到的第一个就是我们要停止匹配的地方。

我鼓励您下载RegExr,这是一个可以帮助您探索正则表达式的好工具——我一直在使用它。

2022-03-03