Jak mogę interaktywnie przetestować i używać wyrażenia regularnego Perl?


15

Powiedzmy, że mam bufor z tekstem. Chciałbym przetestować wyrażenie regularne (najlepiej typ Perla) na moim buforze i pozwolić Emacsowi zaznaczyć na nim dopasowania.

Na przykład następujące wyrażenie regularne ( wzięte z Wikipedii ):

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

będzie pasować w następujący sposób do następującego tekstu:

                    wprowadź opis zdjęcia tutaj

To wyrażenie regularne w szczególności pasuje do co najmniej dwóch spacji występujących po kropce (.)i przed wielką literą.

Czy Emacs zapewnia interaktywny moduł dopasowywania wyrażeń regularnych dla wyrażeń regularnych Perla ?

Jeśli odpowiedź na to drugie pytanie brzmi: nie

  1. Czy istnieje powód, dla którego natywna obsługa wyrażeń regularnych Perla nie była (nigdy) rozważana w Emacsie? (biorąc pod uwagę, że jest to dobrze znany standard w systemach Unix / Linux)

  2. Jak można przystąpić do budowania takiego dopasowywania wyrażeń regularnych Perla? (może wywoływanie Perla pod maską lub wstępne przekształcanie wyrażenia regularnego Perla w obsługiwany wariant?)


2
Emacs regexps wyprzedza Perla o jakiś czas i zakładam, że nie zostały zmienione z powodów kompatybilności wstecznej.
shosti

1
Możesz także sprawdzić stronę github.com/joddie/pcre2el (nie korzystałem z niej, więc nie mogę za nią ręczyć).
shosti

Odpowiedzi:


15

Istnieją dwa fajne pakiety do efektywnej pracy z wyrażeniami regularnymi typu perl, które powinny być używane razem - visual-regexp i jego rozszerzenie - visual-regexp-steroidy . Są świetnym dodatkiem do emacsa:

wprowadź opis zdjęcia tutaj


2
Aby to wyjaśnić, visual-regexp używa emacs regexp, a wersja steroidów może używać PCRE lub Python regex jako backendu.
Kaushal Modi

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.