regex - Vim 正则表达式替换/转义管道字符

标签 regex vim

假设我有一行:

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/

相关文章:

vim - 如何在vim中使用pythontidy

java - 我的模式有什么问题吗?

regex - 为什么 Visual Studio 使用如此奇怪的正则表达式语法

java - 如何使用apache配置库获取属性值和标签值

macos - vim :%w ! pbcopy命令解释

unicode - 如何在 vim 脚本中使用 Unicode 字符?

vim - 使用Vim,如何将 'set statusline'右对齐?

java - 无法通过vim运行java

javascript - 如何在 RegExp 中创建 OR 条件?

Java - 正则表达式查找代码中的注释