vi编辑器,如何替换每一行的第三场比赛

时间:2015-03-17 20:53:21

标签: regex vi

使用vi编辑器,我想替换第三次出现的":"每一行到":1:"。什么是正确的搜索和替换命令?

由于

1 个答案:

答案 0 :(得分:1)

那将是

%s/^\([^:]*:[^:]*:[^:*]\):\(.*\)/\1:1:\2/

其中

%表示所有行;

s是替换命令;

/\([^:]*:[^:]*:[^:*]\):\(.*\)/匹配任意数量(包括零)非冒号的三个以冒号分隔的序列,从行的开头开始,后跟冒号和行的其余部分,捕获之前的所有内容和所有内容在第三次结肠后;和

/\1:1:\2/(其中主斜杠也是模式的尾部斜线)是替换字符串,\1\2分别代表第一个和第二个捕获的组,并且:1:是文字文字。