小编典典

Vim 正则表达式捕获组 [bau -> byau : ceu -> cyeu]

all

我有一个单词列表:

bau
ceu
diu
fou
gau

我想把这个列表变成:

byau
cyeu
dyiu
fyou
gyau

我没有成功尝试命令:

:%s/(\w)(\w\w)/\1y\2/g

鉴于这不起作用,我必须改变什么才能使正则表达式捕获组在 Vim 中工作?


阅读 114

收藏
2022-08-27

共1个答案

小编典典

解决此问题的一种方法是确保模式被 转义 括号括起来:

:%s/\(\w\)\(\w\w\)/\1y\2/g

稍微短一些(而且更 神奇 的 -al)是使用\v,这意味着在它之后的所有 ASCII
字符除了'0'-'9',和'a'-'z'之外都有特殊含义:'A'-'Z'``'_'

:%s/\v(\w)(\w\w)/\1y\2/g

看:

2022-08-27