Vim可变长度通配符搜索和替换?

时间:2012-01-18 05:46:36

标签: vim wildcard replace substitution

我试图清理Frontpage生成的html文件,我需要删除大量标记属性,例如:

style="font-size: 10.0pt; font-family: Trebuchet MS; color: blue"
style="color: blue; text-decoration: underline; text-underline: single"
style="color: blue; text-decoration: underline; text-underline: single"
style="font-family: Trebuchet MS"
style="font-size:10.0pt;"
style="color: navy"

我可以用简单的方法删除一定数量的通配符。命令:

:%s/ style="........"//g

但有没有办法让这个。在该替换命令中可变长度,以便一个命令将删除整个文档中的每个样式属性?

PS - 我搜索过头版清洁工并发现了一些,但不清楚它们有多可靠,所以我自己编写脚本。尽管如此,可以接受建议。

1 个答案:

答案 0 :(得分:12)

这应该消除HTML中的所有样式属性:

:%s/ style=".*"//g

编辑:Sam Brinck提出了一个很好的观点。我的代码仅基于您的示例。如果style="..."属性后面还有其他属性,则此代码会过多地吞噬。更安全的替代方案可能是:

:%s/ style="[^"]*"//g

表示 - 删除{em>非双引号 style="的{​​{1}}之后的所有字符,直到遇到下一个双引号。谢谢Sam!