В данной главе описывается синтаксис регулярных выражений. Чаще всего в Perl они используются в операторах поиска и замены таких как s//, m/, операторах связки =~ или != и т.д. Как правило все эти операторы имеют схожие опции такие как:
i | - не различать строчные и заглавные буквы. | m | - считать строку многострочной. | s | - однострочная строка. | x | - расширенный синтаксис ( использование пробелов и комментариев) |
Обычно все эти опции обозначают как "/x". Их можно использовать даже внутри шаблонов, используя новую конструкцию (?...)
Регулярные выражения или шаблоны (pattern) то же самое, что и regexp процедуры в Unix. Выражения и синтаксис заимствованы из свободно распространяемых процедур V8 Генри Спенсера (Henry Spencer), там же они подробно и описаны.
В шаблонах используются следующие метасимволы (символы обозначающие группы других символов) часто называемые egrep - стандартом:
\ | - считать следующий метасимвол как обычный символ. | ^ | - начало строки |
. | - один произвольный символ. Кроме "\n" - конец строки. | $ | - конец строки | | | - альтернатива (или) |
() | - группировка | [] | - класс символов |
Метасимволы имеют модификаторы (пишутся после метасимвола):
| - повторяется 0 или большее число раз | + | - -//- 1 или большее число раз | ? | - 1 или 0 раз | {n} | - точно n раз | {n,} | - по меньшей мере раз | {n,m} | - не меньше n, но и не больше m |
Во все других случаях фигурные скобки считаются обычными (регулярными) символами. Таким образом "*" эквивалентна {0,} , "+" - {1,} и "?" - {0,1}. n и m не могут быть больше 65536. 1 2 3 4
8 8 8
| |