Регулярные выражения Perl, конечно, называются регулярными выражениями Perl, или, для краткости, регулярными выражениями. Их также можно назвать шаблонами или правилами. Но то, что они , или, по крайней мере, могут быть, - это парсеры рекурсивного спуска . Они реализованы с использованием рекурсивного средства отслеживания изменений, хотя вы можете поменять его на механизме DFA , если предпочитаете выгружать в него задачи, решаемые с помощью DFA.
Вот некоторые уместные цитаты по этим вопросам, со всей ободрением - и некоторые тексты :) - мои:
Вы указываете шаблон, создавая регулярное выражение (или regex ),
и механизм регулярных выражений Perl («Engine», для остальной части этого
глава) затем принимает это выражение и определяет, является ли (и как)
шаблон соответствует вашим данным. Хотя большая часть ваших данных, вероятно, будет
текстовые строки, ничто не мешает вам использовать регулярные выражения для поиска
и замените любую последовательность байтов, даже то, что вы обычно считаете
«Двоичные» данные. Для Perl байты - это просто символы, которые имеют
порядковое значение меньше 256.
Если вы знакомы с регулярными выражениями из других мест, мы
должен предупредить вас, что регулярные выражения немного отличаются в Perl.
Во-первых, они не совсем «регулярны» в теоретическом смысле
слово, что означает, что они могут сделать гораздо больше, чем традиционные обычные
выражения, преподаваемые на уроках информатики. Во-вторых, они используются
так часто в Perl, что у них есть свои специальные переменные, операторы,
и цитирование соглашений, которые тесно связаны с языком,
не просто болтается как любая другая библиотека.
- Программирование на Perl , Ларри Уоллом, Томом Кристиансеном и Джоном Орвантом
Это Апокалипсис при сопоставлении с образцом, обычно связанный с
что мы называем «регулярными выражениями», которые лишь незначительно связаны с
реальные регулярные выражения. Тем не менее, термин вырос с
возможности наших механизмов сопоставления с образцом, поэтому я не буду пытаться
бороться с языковой необходимостью здесь. Я, как правило, буду называть их
«Регулярные выражения» (или «регулярные выражения», когда я нахожусь в англосаксонском настроении).
- Perl6 Апокалипсис 5: сопоставление с образцом , Ларри Уолл
Там много нового синтаксиса, поэтому давайте медленно пройдемся по нему, начиная с:
$file = rx/ ^ <$hunk>* $ /;
Этот оператор создает объект шаблона. Или, как известно в Perl 6,
«Правило». Люди, вероятно, все еще будут называть их «регулярными выражениями» или
«Regexes» тоже (и ключевое слово rx
отражает это), но паттерны Perl длинные
назад перестало быть чем-то вроде «обычного», , поэтому мы попытаемся избежать
условия.
[Обновление: мы воскресили термин «регулярное выражение» для ссылки на эти шаблоны в
генеральный. Когда мы говорим «правило» сейчас, мы имеем в виду
регулярных выражений, которые вы бы использовали в грамматике. См. S05.]
- Perl6 Exegesis 5: Сопоставление с образцом , Дамиан Конуэй
В этом документе кратко изложен Апокалипсис 5, в котором рассказывается о новом синтаксисе регулярных выражений.
Теперь мы попытаемся назвать их regex вместо «регулярных выражений», потому что
они не были регулярными выражениями в течение долгого времени, и мы думаем, что
популярный термин "регулярное выражение" находится в процессе превращения в технический термин с
точное значение: «что-то, что вы делаете с шаблоном, вроде как обычный
выражение ». С другой стороны, одна из целей редизайна
состоит в том, чтобы сделать части наших шаблонов более пригодными для анализа под
традиционная семантика регулярных выражений и синтаксический анализатор, и это включает в себя
проводя тщательное разграничение между частями наших моделей и
грамматики следует рассматривать как декларативные, а какие части как процедурные.
В любом случае при обращении кo рекурсивные шаблоны в грамматике, термины rule и token обычно предпочтительнее, чем regex .
- Perl6Синопсис 5. Регулярные выражения и правила . Автор - Дамиан Конуэй, Эллисон Рэндал, Патрик Мишо, Ларри Уолл и Мориц Ленц
.