EXPR =~ m/PATTERN/cgimosx
EXPR =~ /PATTERN/cgimosx
EXPR =~ m?PATTERN?cgimosx
| Модификатор | Значение |
|---|---|
| /i | Игнорировать различия в регистре |
| /m | Разрешить ^ и $ устанавливать соответствие рядом со встроенным \n |
| /s | Разрешить . устанавливать соответствие переводу строки и игнорировать устаревшую переменную $* |
| /x | Игнорировать (почти все) пробельные символы и разрешить в шаблоне комментарии |
| /o | Компилировать шаблон только один раз |
| /g | Глобальный поиск всех соответствий |
| /cg | Разрешить продолжение поиска после неудачи поиска /g |
LVALUE =~ s/PATTERN/REPLACEMENT/egimosx
s/PATTERN/REPLACEMENT/egimosx
Строка REPLACEMENT - воспринимается perl'ом как строка в двойных кавычках - с вытекающей отсюда интерполяцией переменных, включая $1, $2 и так далее.
| Модификатор | Значение |
|---|---|
| /i | Игнорировать различие в регистре при поиске |
| /m | Разрешить ^ и $ устанавливать соответствие рядом со встроенным \n |
| /s | Разрешить . устанавливать соответствие переводу строки и игнорировать устаревшую переменную $* |
| /x | Игнорировать (почти все) пробельные символы и разрешить в шаблоне комментарии |
| /o | Компилировать шаблон только один раз |
| /g | Глобальный поиск всех соответствий |
| /e | Вычислять правую часть как выражение (рассматривает правую часть - как часть кода perl, а не интерполируемую строку) |
LVALUE =~ tr/SEARCHLIST/REPLACEMENTLIST/cds
tr/SEARCHLIST/REPLACEMENTLIST/cds
| Модификатор | Значение |
|---|---|
| /c | Дополнение к SEARCHLIST (отрицание - реальный список поиска состоит из символов, отсутствующих в SEARCHLIST) |
| /d | Удалить найденные, но не замененные символы (для тех, у кого нет замены в REPLACELIST) |
| /s | Подавить повторяющиеся замененные символы |
Модификаторы /i, /m, /s, /x можно замкнуть, ограничив их действие только частью шаблона, а не всем шаблоном целиком. Для этого их необходимо разместить между символами ? и : кластера.
Например, /ABC(?i:def)XYZ/, может соответствовать ABCdefXYZ или ABCDeFXYZ, но не abcdefxyz
| Символ | Значение |
|---|---|
| \ | Сделать обычным следующий не буквенно-цифровой метасимвол и сделать метасимволом (может быть) следующий буквенно-цифровой символ |
| | | Чередование (соответствие одному или другому - ИЛИ) |
| ( ) | Группировка |
| [ ] | Класс символов (соответствие одному символу из набора) |
| ^ | Начало строки |
| . | Соответствие одному символу (обычно, кроме символа перевода строки) |
| $ | Конец строки |
| Квантификатор | Значение |
|---|---|
| * | 0 или более совпадений (жадный - то есть максимальное количество совпадений) |
| + | 1 или более совпадений (жадный) |
| ? | 1 или 0 совпадений |
| {COUNT} | ровно COUNT совпадений |
| {MIN,MAX} | от MIN до MAX совпадений включительно |
| {MIN,} | от MIN до бесконечного числа совпадений (жадный) |
| Ленивые формы | |
| *? | 0 или более совпадений (ленивый - то есть минимальное количество совпадений) |
| +? | 1 или более совпадений (ленивый) |
| ?? | 0 или 1 совпадение (ленивый) |
| {MIN,MAX}? | не меньше MIN и не больше MAX совпадений (ленивый) |
| {MIN,}? | не меньше MIN совпадений (ленивый) |
| Расширение | Значение |
|---|---|
| (?#…) | Отбросить комментарий |
| (?:…) | Скобки только для кластера, без захвата |
| (?imsx-imsx) | Отключить модификаторы шаблона |
| (?imsx-imsx: ) | Скобки только для кластера плюс модификаторы |
| (?=…) | Истинно, если выполняется утверждение после данной точки |
| (?!…) | Истинно, если не выполняется утверждение после данной точки |
| (?<=...) | Истинно, если выполняется утверждение перед данной точкой |
| (?<!…) | Истинно, если не выполняется утверждение перед данной точкой |
| (?>…) | Совпадение с подшаблоном без ссылки на найденный текст |
| (?{…}) | Выполнить встроенный код perl |
| (??{…}) | Поиск регулярного выражения из встроенного кода perl |
| (?(...)...|...) | Поиск по шаблону if-then-else |
| (?(...)...) | Поиск по шаблону if-then |