Как я могу тестировать и использовать регулярное выражение Perl в интерактивном режиме?


15

Скажем, у меня есть буфер с текстом. Я хотел бы проверить регулярное выражение (в идеале тип Perl) в моем буфере и сделать так, чтобы Emacs выделял совпадения на нем.

Например, следующее регулярное выражение ( взято из Википедии ):

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

будет соответствовать следующему тексту:

                    введите описание изображения здесь

Это регулярное выражение, в частности, соответствует как минимум двум пробелам, встречающимся после точки (.)и перед заглавной буквой.

Предоставляет ли Emacs интерактивное средство сопоставления регулярных выражений для регулярных выражений Perl ?

Если ответ на последний нет:

  1. Есть ли причина, по которой встроенная поддержка регулярных выражений Perl никогда не рассматривалась в Emacs? (учитывая, что это хорошо известный стандарт в Unix / Linux)

  2. Как можно было бы построить один такой Perl-регулярное выражение? (возможно, вызов Perl изнутри или предварительное преобразование регулярного выражения Perl в поддерживаемый вариант?)


2
Регулярные выражения Emacs предшествуют Perl, и я предполагаю, что они не были изменены по причинам обратной совместимости.
Шости

1
Кроме того, вы можете проверить github.com/joddie/pcre2el (я не использовал его, поэтому я не могу ручаться за это).
Шости

Ответы:


15

Существует два замечательных пакета для эффективной работы с регулярными выражениями типа perl, которые следует использовать вместе - visual-regexp и его расширение - visual-regexp-steroids . Они являются отличным дополнением к emacs:

введите описание изображения здесь


2
Для пояснения, visual-regexp использует emacs regexp, а версия стероидов может использовать PCRE или Python regex в качестве бэкэнда.
Каушал Моди

6

re-builderпозволяет на лету создавать регулярные выражения в стиле emacs lisp. Я не знаю, существует ли эквивалентный пакет для создания регулярных выражений Perl в интерактивном режиме.

См. Http://www.masteringemacs.org/articles/2011/04/12/re-builder-interactive-regexp-builder/ для дальнейшего обсуждения.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.