Perl / 8. Обработка текста с использованием регулярных выражений

Регулярные выражения также могут использоваться для изменения текста. До настоящего момента мы рассматривали поиск по шаблону, а в этой главе вы увидите, как шаблоны применяются для обнаружения изменяемых частей строки.
Статьи раздела '8. Обработка текста с использованием регулярных выражений':
m// в списочном контексте
При использовании split шаблон задает разделитель (части строки, не содержащие полезных данных). Иногда бывает проще задать тот текст, который вы хотите сохранить. При использовании оператора поиска по шаблону (m//) в списочном ко...
Глобальная замена (/g)
Как вы, вероятно, заметили в предыдущих примерах, s/// выполняет только одну замену, даже если в строке возможны и другие совпадения. Конечно, это всего лишь режим по умолчанию. Модификатор /g требует, чтобы оператор s/// выполнял...
Другие возможности регулярных выражений
После чтения трех (почти!) глав, посвященных регулярным выражениям, становится ясно, что этот мощный механизм принадлежит к числу важнейших аспектов Perl. Но ядро регулярных выражений Perl обладает и другими возможностями, добавле...
Другие ограничители
По аналогии с конструкциями m// и qw// для s/// также можно выбрать другой ограничитель. Но в операторе замены используются не два, а три ограничителя, поэтому ситуация слегка изменяется. Для обычных (непарных) символов, не имеющи...
Замена с использованием оператора s///
Если оператор поиска m// напоминает функцию поиска в текстовом редакторе, то оператор замены Perl s/// может рассматриваться как аналог функции поиска с заменой. Оператор просто заменяет часть значения переменной1, которая совпала...
Минимальные квантификаторы
Четыре квантификатора, встречавшиеся нам ранее, являются максимальными (greedy). Это означает, что они находят совпадение максимально возможной длины и неохотно «уступают» символы только в том случае, если это необходимо для общег...
Многострочный поиск
Классические регулярные выражения использовались для поиска совпадений в пределах одной строки текста. Но поскольку Perl может работать со строками произвольной длины, шаблоны Perl так же легко совпадают в строках, разбитых на нес...
Модификаторы режимов
Кроме уже упоминавшегося модификатора /g2, при замене могут использоваться модификаторы /i, /x и /s, уже знакомые по обычному поиску совпадений (порядок перечисления модификаторов неважен): s#wilma#Wilma#gi; # Заменить все вхож...
Обновление нескольких файлов
Программное обновление текстового файла чаще всего реализуется как запись нового файла, похожего на старый, но содержащего все необходимые изменения. Как вы увидите, этот прием приводит почти к такому же результату, как обновление...
Оператор split
Регулярные выражения также используются в работе оператора split, который разбирает строку в соответствии с заданным шаблоном. Например, такая возможность пригодится при обработке данных, разделенных символами табуляции, двоеточия...
Переключение регистра
При замене часто бывает нужно обеспечить правильный регистр символов в заменяющем слове (нижний или верхний в зависимости от ситуации). Задача легко решается в Perl при помощи служебных последовательностей с обратной косой чертой....
Редактирование «на месте» в командной строке
Программу, приведенную в предыдущем разделе, написать несложно. Но Ларри решил, что и этого недостаточно. Представьте, что вам потребовалось обновить сотни файлов, в которых имя Randal ошибочно записано с двумя l (Randall). Конечн...
Функция join
Функция join не использует шаблоны, но выполняет операцию, обратную по отношению к split. Если split разбивает строку на фрагменты, join «склеивает» набор фрагментов в одну строку. Вызов join выглядит так: my $result = join $gl...

Страницы: 1