这两个术语是什么意思?
贪婪会尽可能地消耗。从http://www.regular- expressions.info/repeat.html我们看到了尝试将 HTML 标记与<.+>. 假设您有以下内容:
<.+>
<em>Hello World</em>
您可能认为<.+>(.表示 任何非换行符 ,+表示 一个或多个 ) 只会匹配<em>和</em>,而实际上它会非常贪婪,并且从第一个<到最后一个>。这意味着它将匹配<em>Hello World</em>而不是您想要的。
.
+
<em>
</em>
<
>
让它变得懒惰 ( <.+?>) 将防止这种情况发生。通过在?之后添加+,我们告诉它 尽可能少 地重复,所以>它遇到的第一个就是我们要停止匹配的地方。
<.+?>
?
我鼓励您下载RegExr,这是一个可以帮助您探索正则表达式的好工具——我一直在使用它。