假设我有一行:
a|b|c
我想运行一个正则表达式将其转换为:
a\|b\|c
在我熟悉的大多数正则表达式引擎中,例如
s%\|%\\|%g
应该管用。如果我在 Vim 中尝试这个,我会得到:\|a\||\|b\||\|c
事实证明,我在输入这个问题时发现了答案。无论如何,我会将它与我的解决方案一起提交,因为我有点惊讶搜索没有发现任何重复项。
最佳答案
vim 有自己的正则表达式语法。在 vim 帮助文档中有一个与 PCRE 的比较(见 :help perl-patterns
)。
除此之外,vim 没有magic/magic/very magic 模式。 :h magic
检查表。
默认情况下,vim 有 magic
模式。如果你想制作 :s
命令在您的问题工作中,只需激活 very magic
:
:s/\v\|/\\|/g
关于regex - Vim 正则表达式替换/转义管道字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18882255/