我偶然发现了一个案例,我不得不删除文件中特定正则表达式模式的引号,我得出的结论是使用vim的搜索并替换util并且只是逃避原始和替换中的每个特殊字符图案。
这很有用(经过一点修改),但它让我想知道是否有更好的方法来做这些事情。
原始正则表达式(引用):'/^\//'
将替换为/^\//
我使用的搜索/替换模式:
s/'\/\^\\\/\/'/\/\^\\\/\//g
谢谢!
答案 0 :(得分:4)
您几乎可以使用任何字符作为正则表达式分隔符。这将使您不必转义正斜杠。您还可以使用组来提取正则表达式并避免重新键入它。例如,试试这个:
:s#'\(\\^\\//\)'#\1#
我不知道这是否适用于您的情况,因为您列出的示例和您提供的正则表达式不匹配。 (您列出的正则表达式将匹配'/^\//'
,而不是'\^\//'
。我的将匹配后者。根据需要进行调整。)
答案 1 :(得分:1)
您是否可以通过使用简单的字符串搜索并替换?
来完全避免使用正则表达式答案 2 :(得分:0)
请检查这是否适合您 - 在此替换表达式之前定义行号或将光标放在其上:
S: '(。* \)\':\ 1:
我为此使用了vim 7.1。当然,你可以在视觉上标记一个区域(在其上执行该表达式(使用“v”或“V”并相应地移动光标))。