如何在文本中搜索(使用正则表达式)正则表达式文字?

时间:2010-11-30 03:12:31

标签: regex vim escaping

我偶然发现了一个案例,我不得不删除文件中特定正则表达式模式的引号,我得出的结论是使用vim的搜索并替换util并且只是逃避原始和替换中的每个特殊字符图案。

这很有用(经过一点修改),但它让我想知道是否有更好的方法来做这些事情。

原始正则表达式(引用):'/^\//'将替换为/^\//

我使用的搜索/替换模式: s/'\/\^\\\/\/'/\/\^\\\/\//g

谢谢!

3 个答案:

答案 0 :(得分:4)

您几乎可以使用任何字符作为正则表达式分隔符。这将使您不必转义正斜杠。您还可以使用组来提取正则表达式并避免重新键入它。例如,试试这个:

:s#'\(\\^\\//\)'#\1#

我不知道这是否适用于您的情况,因为您列出的示例和您提供的正则表达式不匹配。 (您列出的正则表达式将匹配'/^\//',而不是'\^\//'。我的将匹配后者。根据需要进行调整。)

答案 1 :(得分:1)

您是否可以通过使用简单的字符串搜索并替换?

来完全避免使用正则表达式

答案 2 :(得分:0)

请检查这是否适合您 - 在此替换表达式之前定义行号或将光标放在其上:

S: '(。* \)\':\ 1:

我为此使用了vim 7.1。当然,你可以在视觉上标记一个区域(在其上执行该表达式(使用“v”或“V”并相应地移动光标))。