Como posso testar e usar uma expressão regular do Perl interativamente?

15

Digamos que eu tenha um buffer com texto. Gostaria de testar uma expressão regular (idealmente tipo Perl) no meu buffer e fazer com que o Emacs destaque as correspondências.

Por exemplo, o seguinte regexp ( extraído da Wikipedia ):

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

corresponderia da seguinte forma no seguinte texto:

                    insira a descrição da imagem aqui

Essa expressão regular, em particular, corresponde a pelo menos dois espaços que ocorrem após o período (.)e antes de uma letra maiúscula.

O Emacs fornece um comparador de expressões regulares interativo para expressões regulares do Perl ?

Se a resposta para este último for não:

  1. Existe uma razão pela qual o suporte nativo às expressões regulares do Perl nunca foi considerado no Emacs? (considerando que é um padrão bem conhecido no Unix / Linux)

  2. Como alguém poderia proceder para criar um desses matchers Perl regexp? (talvez chamando Perl sob o capô ou pré-converta o regexp do Perl para uma variante suportada?)

Amelio Vazquez-Reina
fonte
2
As regexps do Emacs são anteriores ao Perl há algum tempo, e suponho que elas não foram alteradas por razões de compatibilidade com versões anteriores.
shosti 23/09/14
11
Além disso, você pode conferir o github.com/joddie/pcre2el (eu não o usei, por isso não posso garantir isso).
shosti 23/09/14

Respostas:

15

Existem dois pacotes legais para trabalhar com tipos de regex perl efetivamente, que devem ser usados ​​juntos - visual-regexp e sua extensão - visual-regexp-steroids . Eles são um ótimo complemento para o emacs:

insira a descrição da imagem aqui

welldan97
fonte
2
Para esclarecer, o visual-regexp usa o emacs regexp e a versão esteróides pode usar PCRE ou Python regex como back-end.
Kaushal Modi