我认为这是一个非常简单的解决方案,但我一直试图找到大约一个小时的答案,但似乎无法弄清楚。
我正在尝试在 Vim 中进行查找/替换,它将替换一系列以四位数字开头103
并后跟123
相同四位数字的数字,如下所示:
1033303
-> 1233303
1033213
->1233213
我最接近的是:
%s/103\d\{4}/123\0/g
但是,这会导致整个数字与 匹配\0
,如下所示:
1033303
->1231033303
非常感谢您的帮助
你很亲密
%s/103\(\d\{4}\)/123\1/g
\(
和之间的模式是一个子匹配,\)
可以按出现顺序等访问。有关更多信息,请参阅。\1
\2
:help \(
现在没有捕获组!
:%s/103\ze\d\{4}/123/g
\ze
将在那里设置比赛的结束。这允许您匹配整个模式,但只对其中的一部分进行替换。
:h /\ze
:h /\zs
使用捕获组:
%s/103\(\d\{4}\)/123\1/g
试试这个:
%s#103\(\d\{4}\)#123\1#g