≪
≫

Лекция 4. Операторы m// и s///

В данной лекции рассматриваются модификаторы операторов поиска и замены, алгоритм работы опеаторов ш// и s///, режимы работы операторов ш// и s///, контекст работы оператора ш, модификаторы операторов ш// и s///, предварительная обработка регулярных выражений.

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

Оператор т// в общем виде записывается так:

$text =' т/ регулярное выражение / модификаторы

или

$text ! - т/ регулярное выражение / модификаторы

Второй случай эквивалентен записи

not $text ш/регулярное выражение / модификаторы

при которой возвращаемое значение логически инвертируется.

Целевым текстом по умолчанию является переменная 5 . В этом случае ее и связку можно не писать.

$ =~ т/ регулярное выражение / модификаторы

эквивалентно

т/регулярное выражение / модификаторы

Если ограничителями являются слэши, то букву т также можно опустить.

Если регулярное выражение не задано, как в операторе

//

или задано в виде пустой или неопределенной переменной

/$emtyvar/

то в таком операторе в качестве регулярного выражения применяется последнее успешно использованное регулярное выражение во внешней области видимости. Сейчас в связи с появлением объектов регулярных выражений использование регулярного выражения по умолчанию потеряло смысл.

Заскакивая вперед, еще скажу, что регулярное выражение может быть также представлено объектом регулярного выражения

ту $ гe=q г/ 'регулярное выражение /;

$text =~ $ге;

или

$text =" /$ге/;

Оператор подстановки

$text =*? з/регулярное выражение / выражение для подстановки / модификаторы

отличается от оператора поиска тем, что имеет заменяющую часть. Кроме того, в операторе подстановки может применяться модификатор е, влекущий вычисление выражения для подстановки как код Perl. Модификатор е может быть использован многократно с многократной обработкой выражения для замены по правилам, аналогичным функции eval, перед тем как произвести замену.

 
Посмотреть оригинал