如何使用vim在HTML中搜索并删除一系列属性?

4

我需要关于vim和正则表达式的帮助。

我有一个HTML文件,其中有很多class="...",例如:

            <td class="td_3"><p class="block_3">80</p></td>
        <td class="td_3"><p class="block_3">90</p></td>

我没有使用任何CSS,因此想要删除它们。 我尝试了:

:%s/class="[a-z0-9]"//g

但是它没有起作用。 我做错了什么吗?


3
你需要匹配引号内的单个字母或数字字符。使用:%s/\s*class="[^"]*"//g - Wiktor Stribiżew
它运行得很好!谢谢!我对正则表达式不熟悉。你能解释一下吗? - Oswaldo Nickel
请看下面我的回答。 - Wiktor Stribiżew
1个回答

7

使用 class="[a-z0-9]" 这个模式,你可以在引号中匹配一个单个的字母或数字字符,同时引号内可能包含除双引号以外的任何文本。

你可能还想删除 class 前面的空格。

你可以使用

:%s/\s\+class="[^"]*"//g 

在这里,\s\+将匹配一个或多个空白字符,class="匹配一个字面字符串,然后[^"]*尝试找到除了"之外的任意零个或多个字符并在可能的情况下尽可能多地匹配,然后"匹配结束双引号标记。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接