vim 中的正则表达式:如何替换 `+` 扩展字符

问题描述 投票:0回答:1

我正在尝试将所有主要出现的

=
替换为
#

=
lorem
==
ipsum
====
foo=bar

通常我会做这样的事情。

:%s/^====/####/g
:%s/^===/###/g
:%s/^==/##/g
:%s/^=/#/g

不太好,但完成了工作。

我的起点是

:%s/^\(=+\)/#/g
,但这会将
=
的所有主要出现变成单个
#

我想到但不知道如何实施的两个方案是:

  • 在捕获组中替换所有出现的
    =
  • 确定捕获组的长度并.

有没有办法在正则表达式 vim 单行中解决这个问题?

regex replace vim count capture-group
1个回答
0
投票

您可以使用

:global
命令查找以等号开头的行,然后使用
:substitute
g
标志来替换每个
=
:

:g/^=/s/=/#/g

参见

:help :g
:help :s_g

© www.soinside.com 2019 - 2024. All rights reserved.