gVim reg exp:如何使用保存的模式进行搜索

时间:2018-04-10 02:27:22

标签: regex vim

我有一些像

这样的模式
a,10
a,12
a,13   
b,20
b,22    
c,30    
d,33

我想转换为

a,10,12,13

b,20,22,0

c,30,0,0

d,33,0,0

使用gVim regexp。 是否可以在gVim正则表达式中搜索已保存的模式?像

%s/\\(.\*\\),\\(.\*\\)\n\1..../\1,\2/gc 

或者还有其他方法可以达到这个目的吗?

1 个答案:

答案 0 :(得分:0)

令人费解,但是后续工作

:%s/\v\d+$\zs\n\w+
:%s/\d\zs$/,0,0,0
:%s/\v^\w+(,\d+){3}\zs.*$

<强> :%s/\v\d+$\zs\n\w+

  • 搜索所有以数字
  • 结尾的行
  • 后跟换行符
  • 以单词
  • 开头
  • 并删除换行符和单词

<强> :%s/\d\zs$/,0,0,0

  • 向以数字
  • 结尾的每一行添加三个0

<强> :%s/\v^\w+(,\d+){3}\zs.*$

  • 删除第3个匹配的逗号/数字对后的结束行