gpt4 book ai didi

regex - 帮助 Vim 中的反向引用正则表达式

转载 作者:行者123 更新时间:2023-12-01 10:07:34 28 4
gpt4 key购买 nike

我试图在 vi 中编写一个正则表达式来匹配任何空白字符后跟任何数字。然后,在每次匹配时,在空格和数字之间插入一个美元符号。这是一个例子:

A1234 12 14 B1234
B1256 A2 14 C1245
C1234 34 D1 1234K

正确的正则表达式会产生这个:

A1234 $12 $14 B1234
B1256 A2 14 C1245
C1234 $34 D1 $1234K

我意识到我需要使用反向引用,但我似乎不太能写出正确的正则表达式。这是我的尝试:

:'<,'>/(\s\d)/\s\1\$/g

另外,我关闭了 Vim 的默认正则表达式模式 (vnoremap//\v)。

感谢您的帮助。

最佳答案

您需要转义括号以使它们作为分组而不是文本中的实际匹配项工作,并且转义 $。像这样:

:%s/\(\s\)\(\d\)/\1$\2/g

这在 vim 中对我有用(使用标准魔法设置)。

编辑:刚刚意识到您的非标准正则表达式设置导致您“反其道而行之”。但是,我认为诀窍是使用两个组。根据您的设置,这应该有效:

:%s/(\s)(\d)/\1$\2/g

关于regex - 帮助 Vim 中的反向引用正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7522671/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com