¿Cómo puedo probar y usar una expresión regular de Perl de forma interactiva?

15

Digamos que tengo un búfer con texto. Me gustaría probar una expresión regular (idealmente tipo Perl) contra mi búfer y hacer que Emacs resalte las coincidencias en él.

Por ejemplo, la siguiente expresión regular ( tomada de Wikipedia ):

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

coincidiría como sigue en el siguiente texto:

                    ingrese la descripción de la imagen aquí

Esta expresión regular en particular coincide con al menos dos espacios que ocurren después del punto (.)y antes de una letra mayúscula.

¿Emacs proporciona un emparejador interactivo de expresiones regulares para las expresiones regulares de Perl ?

Si la respuesta a esto último es no:

  1. ¿Hay alguna razón por la cual el soporte nativo de las expresiones regulares de Perl no fue (nunca) considerado en Emacs? (considerando que es un estándar bien conocido en Unix / Linux)

  2. ¿Cómo se puede proceder sobre la construcción de uno de estos Regexp Matcher Perl? (¿tal vez llamar a Perl bajo el capó, o convertir previamente la expresión regular de Perl a una variante compatible?)

Amelio Vazquez-Reina
fuente
2
Emacs regexps es anterior a Perl por algún tiempo, y supongo que no se han cambiado por razones de compatibilidad con versiones anteriores.
shosti
1
Además, es posible que desee visitar github.com/joddie/pcre2el (no lo he usado, así que no puedo garantizarlo).
shosti

Respuestas:

15

Hay dos paquetes agradables para trabajar con expresiones regulares de tipo perl de manera efectiva, que deben usarse juntos: visual-regexp y su extensión, visual-regexp-esteroides . Son una gran adición a emacs:

ingrese la descripción de la imagen aquí

welldan97
fuente
2
Para aclarar, visual-regexp usa emacs regexp y la versión de esteroides puede usar PCRE o Python regex como back-end.
Kaushal Modi