REGEX在VIM中替换多个字符串



我有带有<hr/>标签组的文档:

<p>stuff</p>
<hr/>
<hr/>
<hr/>
<p>stuff</p>

感谢提示如何用此标签的单个实例在vim中替换。

您可以将<hr/>n组成一个组并搜索其倍数,更换有一个。另请注意,在VIM中您可以使用不同的定界符,如果您正在使用斜线,这特别有用例如。而且,如果您没有标志。

:%s#(<hr/>n)+#1

使用v启用非常魔术,可以避免更多的逃脱。然而<>将被视为特殊单词边界。所以你有了

逃脱它们。
:%s#v(<hr/>n)+#1

,当然,如果文件中唯一的重复行是这些标签,这也足够:

:%!uniq

您可以在vim中使用此搜索重置:

:%s/<hr/>n(<hr/>n)+/1/

<hr/>n(<hr/>n)+将找到包含<hr/>的2行或更多行,我们使用1替换为<hr/>n

最新更新