如何交互测试和使用Perl正则表达式?


15

说我有一个文本缓冲区。我想针对我的缓冲区测试一个正则表达式(最好是Perl类型),并让Emacs突出显示它的匹配项。

例如,以下正则表达式(摘自Wikipedia):

(?<=\.) {2,}(?=[A-Z]) 

在以下文本上匹配如下:

                    在此处输入图片说明

该正则表达式尤其匹配在句点之后(.)和大写字母之前出现的至少两个空格。

Emacs是否为Perl正则表达式提供交互式正则表达式匹配器?

如果对后者的回答为“否”:

  1. 有没有理由在Emacs中从来没有考虑过对Perl正则表达式的本机支持?(考虑到它是Unix / Linux中众所周知的标准)

  2. 如何构建这样的Perl正则表达式匹配器?(也许是在后台调用Perl,还是将Perl正则表达式预先转换为受支持的变体?)


2
Emacs regexps比Perl早了一段时间,我认为由于向后兼容的原因,它们没有被更改。
shosti 2014年

1
另外,您可能想查看github.com/joddie/pcre2el(我没有用过,所以我不能担保)。
shosti 2014年

Answers:


15

有两个不错的软件包可以有效地使用perl类型的正则表达式,应该一起使用-visual-regexp及其扩展名-visual-regexp-steroids。它们是emacs的重要补充:

在此处输入图片说明


2
为了澄清,visual-regexp使用emacs regexp,而类固醇版本可以使用PCRE或Python regex作为后端。
2014年

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.