小编cal*_*ofr的帖子

如何在vim中非捕获搜索和替换

我正在尝试学习如何使用vim的正则表达式,我正在尝试进行搜索和替换.我有这样的事情:

aaaaaaa&sometext&...
aaaaaaaanothertext
Run Code Online (Sandbox Code Playgroud)

(as实际上是行开头的空格,我不知道如何在这里打印)

我想替换第一次出现的&& &,并保持everyting其他不变.我正在使用\%(...\)非捕获模式,如此处所示,但a模式仍然被捕获.我正在使用:%s/\%(^a*\)&/& &/gc,我得到:

aaaaaaaa& aaaaaaaa&sometext&...
aaaaaaaaanothertext
Run Code Online (Sandbox Code Playgroud)

我不明白为什么.我也尝试过用组替换:%s/\%(^a*\)\(&\)/\1 \1/gc,但是后来我得到了:

& &sometext&...
aaaaaaaanothertext
Run Code Online (Sandbox Code Playgroud)

因此,似乎该组实际上被忽略了组处理(因为第一组是在搜索模式上&),但仍然在搜索模式上捕获.

所以,长话短说,取代命令我必须使用来自:

aaaaaaa&sometext&...
Run Code Online (Sandbox Code Playgroud)

至:

aaaaaaa& &sometext&...
Run Code Online (Sandbox Code Playgroud)

regex vim

5
推荐指数
3
解决办法
2459
查看次数

标签 统计

regex ×1

vim ×1