VIM搜索和替换正则表达式

4
在VIM中,使用搜索和替换的最佳方法是在每一行的第一个逗号后添加数字1。每行都有多个逗号(这是csv文件),但我只想在每行的第一个逗号后插入值1。
2个回答

8
我相信只需要:s/,/,1/。如果您不使用g选项,则每行只会替换第一个找到的实例。

如果要应用于整个文件,请使用:%s/,/,1/,第一个选项只适用于单个行。


我在我的Mac OSX Mountain Lion上使用vim时,实际上经历了一件很奇怪的事情,就是省略/g选项是替换同一行中多个正则表达式匹配的唯一方法。/g选项并没有像它应该做的那样工作。删除/g允许我在每行中搜索和替换多个匹配项。 - netpoetica

1
使用这个正则表达式/(^.*?,)/gm和这个替换$11。对于每一行,从行的开头捕获到第一个逗号之前的所有内容。这个内容被捕获在组1中,用$1表示。将其替换为$11,其中$11是组1后跟着数字1
在这里查看:http://regexr.com?30pjf

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接