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

joh*_*ode 1 regex vim escaping

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

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

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

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

谢谢!

cdh*_*wie 5

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

:s#'\(\\^\\//\)'#\1#
Run Code Online (Sandbox Code Playgroud)

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