在VI中使用正则表达式搜索和替换撇号

时间:2013-07-15 20:02:30

标签: regex vim vi

我正在尝试搜索并替换所有出现的反斜杠,然后将单引号替换为一个反斜杠和引号。像这样:

VI中的

Everyone\\\\\\\\\\\\\\\'sEveryone\'s

它还应该替换:blah\\\\\\\'\'blah\'\'

我无法确定如何做到这一点。

尝试::%s/\\\+\'/\\'/但它只适用于第一个。

我也尝试过::%s/\\\+?\'/\\'/但这不起作用。

它的正确REGEX应该是什么?。

2 个答案:

答案 0 :(得分:1)

这符合您的要求:

  

替换所有出现的反斜杠后跟单引号   一个反斜杠和引用

 %s/\\\+'/\\'/g

你的两个例子:

Everyone\\\\\\\\\\\\\\\'s -> Everyone\'s
blah\\\\\\\'\' -> blah\'\'

用vim 7.3测试

答案 1 :(得分:0)

这对我有用:

%s/[\\\\]*'/'/

请注意,代码标记将'\'的四个实例压缩为两个:括号内有四个反斜杠。

感谢修理,Rohit!