【发布时间】:2010-11-21 07:24:18
【问题描述】:
我有一个很大的 HTML 文件,其中包含许多如下所示的标记:
<p class="MsoNormal" style="margin: 0in 0in 0pt;">
<span style="font-size: small; font-family: Times New Roman;">stuff here</span>
</p>
我正在尝试进行 Vim 搜索和替换以摆脱所有 class="" 和 style="",但我无法使匹配变得不贪心。
我的第一次尝试是这样的
%s/style=".*?"//g
但 Vim 似乎不喜欢 ?。不幸的是,删除 ? 会使匹配过于贪婪。
我怎样才能让我的比赛变得不贪心?
【问题讨论】:
-
我认为保罗的回答很好。只是说“?”并不意味着在 vim 中是可选的(如果这是您想要使用“?”实现的)
-
@LB,在多种语言中,.*?表示匹配任何字符但不贪心。这就是他正在努力实现的目标。
-
相关:How to make regex matchers non-greedy? 在 Vim SE 上。
-
对于不知道 ungreedy/non-greedy 这个词的人:它也被称为懒惰
标签: regex vim regex-greedy