perl - vim:交互式搜索并替换为与 perl 兼容的正则表达式

标签 perl vim replace

根据this page您可以使用 perl 兼容的正则表达式

:perldo s/pattern/insert/g

这很好用。

但是,如何在 vim 中使用 PCRE 语法进行交互式搜索和替换?

由于这不适用于 perldo,我寻找不同的解决方案。

最佳答案

直到当前发行的vim版本,还没有办法做到:s/[perlRegex]/bar/c

所以您要求的功能并不存在。

您可以使用 verymagic 进行匹配,但是它不是 Perl Regex 兼容标志。它仍然使用 vimregex 引擎,只是改变了转义正则表达式模式的方式。

例如,在 Perl 中,您可以执行前瞻/后瞻 (?<=foo)..., (?=foo), (?!foo).. ,您可以使用方便的\K :som.*ing\Kwhatever等等,无论你设置了哪个“魔法”级别,你都不能直接在 vim 中使用这些语法。 Vim 具有相同的功能,但语法不同:

\@=
\@!
\@<=

还有 \zs \ze非常方便,甚至比 perl 的功能更强大 \K .

Vim 是一个编辑器,使用 vim 正则表达式,您不仅可以进行文本匹配,还可以根据视觉选择、光标位置等进行匹配。

如果您确实需要进行复杂的模式匹配并且确实需要在 vim 中进行,请学习 vim 正则表达式!如果你“对PCR非常了解”,这对你来说并不困难

关于perl - vim:交互式搜索并替换为与 perl 兼容的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32434222/

相关文章:

perl - DBI 在获取行时可以推断或获知数字列类型吗?

php - 如何将我的 Perl 脚本与 MySQL 查询同步

vim - 突出显示 Vim 中的搜索而不是替换?

PHP - 正则表达式删除引号并添加大括号?

php - 替换字符串中的最后一个单词

regex - 使用 perl 拆分可能包含空格的行

linux - 使用 wget 和 Perl 从 HTML 中提取信息

vim - vimscript 中函数被多次调用

Ruby 命令-t SEGV

.htaccess 使用 %20 将所有 url 重定向到 -