正则表达式搜索并删除括号中的所有内容<>

时间:2017-10-10 01:27:56

标签: regex vim

只是学习vim并试图删除括号<>之间的所有内容。尝试%s/<*>//g,但只删除了结尾>括号。我想删除<>代码

之间的所有内容

2 个答案:

答案 0 :(得分:3)

*是一个修饰符 - 它本身并不匹配文本,它会修改前一个事物以匹配零次或多次。因此,您的模式将匹配零个或多个<个字符,后跟一个> - ><><<><<<<<<<<>,但如果<>之间还有其他任何内容,那就不行了。

要匹配任何字符,特殊模式.匹配任何单个字符。因此,您可以使用%s/<.*>/,但如果您在一行中有多个标记会导致问题 - 它会匹配第一个标记的<和最后一个标记的>删除它们以及它们之间的所有内容。

由于代码无法嵌套(您无法在代码中包含><),因此您可以使用任何&#34;任何内容来解决这个问题但是&#34;图案:

%s/<[^>]*>//g

答案 1 :(得分:0)

你在看什么

:%s/<.*>//g

但对于这个特殊情况,我会做

da<

将光标放在<>内,因为它涉及较小的击键,:help text-objects