OpenXS Initiative/Статьи { * }
 

Регулярные выражения в языке Perl

Предлагаю вашему вниманию обещанный перевод документа perlre из набора документации по языку Perl версии 5.6.0.

Надеюсь, перевод этот пригодиться еще кому-нибудь. Пользуйтесь!

  В.К.

Perl 5.6.0

PERLRE(1)

НАЗВАНИЕ

perlre - регулярные выражения Perl

ОПИСАНИЕ

В этом руководстве описан синтаксис регулярных выражений в языке Perl. Описание того, как практически использовать регулярные выражения в операциях сопоставления с образцом, а также разнообразные примеры на эту тему можно найти в разделах m// и s/// на странице справочного руководства perlop.

Операции сопоставления могут иметь различные модификаторы, в том числе, связанные с интерпретацией используемых регулярных выражений. Вот эти модификаторы:

i

Игнорировать регистр символов при сопоставлении с образцом.

m

Обрабатывать буфер как несколько строк.

s

Обрабатывать буфер как одну строку.

x

Повысить удобочитаемость шаблона путем включения пробелов и комментариев.

Последний обычно называют "модификатор /x", хотя рассматриваемый разделитель может и не быть косой. Фактически, любой из этих модификаторов может быть встроен в регулярное выражение с помощью новой конструкции (?...). См. ниже.

Сам модификатор /x требует немного более подробного рассмотрения. Он заставляет синтаксический анализатор регулярных выражений игнорировать пробельные символы, не замаскированные обратной косой и не входящие в класс символов. Это можно использовать для разбиения регулярного выражения на (немного) более понятные части. Символ # также рассматривается как метасимвол начала комментария, как в остальном коде на Perl. Взятые вместе, эти возможности делают Perl 5 намного более удобочитаемым языком. См. пример кода для удаления комментариев в программе на C на странице справочного руководства perlop.

Регулярные выражения

Шаблоны, используемые при сопоставлении с образцом, являются регулярными выражениями типа используемых в версии 8 библиотеки regexp. (Фактически, соответствующие функции являются производными (хотя и весьма далекими) от свободно распространяемой реализации версии 8, которую выполнил Henry Spencer.) Подробнее см. раздел "Регулярные выражения версии 8".

В частности, следующие метасимволы имеют стандартные, знакомые по egrep, значения:

Полный текст документа: >>>

 

Linux coutner