Регулярные выражения дают программисту новый взгляд на текстовые данные: вместо отдельных символов и простых подстрок он начинает мыслить обобщенными шаблонами, что помогает ему находить более простые и эффективные решения. В таблице 8.1 для справки приведены основные обозначения, применяемые для записи регулярных выражений в Perl. Дополнительные сведения о регулярных выражениях можно почерпнуть из стандартной документации по Perl и перевода уникальной книги Джеффри Фридла "Регулярные выражения".
| Обозначение | Описание | Примеры |
|---|---|---|
| // | ограничители регулярного выражения по умолчанию | /$pattern/ |
| \ | отмена специального значения следующего символа | m{C:\\windows} |
| () | группировка шаблонов или сохранение значения | /(\w\w\w)+/ |
| | | выбор из нескольких альтернатив | /кошелек|жизнь/ |
| [] | класс символов: любой символ из перечисленных | /[0-9a-fA-F]/ |
| [^] | инвертированный класс символов: любой символ, кроме перечисленных | /[^0-9]/ |
| Метасимволы | ||
| . | любой символ, кроме \n (соответствует любому символу, включая \n с модификатором /s) | /(.+)/ |
| \d | десятичная цифра | m{Время=\d+ сек} |
| \D | не десятичная цифра | /(\D*)\d+/ |
| \w | алфавитно-цифровой знак | /\s+\w+\s+/ |
| \W | не алфавитно-цифровой знак | /\W\W\W/ |
| \s | пробельный символ | s/\s+/ / |
| \S | любой символ, кроме пробельного | /\S+/ |
| Утверждения | ||
| ^ | начало строки (соответствует началу каждой строки с модификатором /m) | /^\w+/ |
| $ | конец строки (соответствует концу каждой строки с модификатором /m) | /\d+$/ |
| \b | граница слова (между \w и \W или \W и \w) | /stop\b/ |
| \B | любая позиция, кроме границы слова | /stop\B/ |
| \A | только начало строки, даже с модификатором /m | /\A[#]/ |
| \z | только конец строки, даже с модификатором /m | /\w+\z/ |
| \Z | только конец строки или перед \n в конце строки, даже с модификатором /m | /\w+\Z/ |
| \G | позиция в строке, равная значению функции pos() | |
| Escape-последовательности | ||
| \t \n \r \f \a \b | управляющие символы: \b в классе символов выступает как символ Backspace (0x08), вне его - как граница слова | /[\a\b\f\r\n\t]/ |
| \0 \x \c \N | коды символов | /\033\x1F\cZ/ /\x{263a}/ |
| \l \L \u \U \Q \E | преобразующие последовательности | /\Q$pattern\E/ |
| Квантификаторы | ||
| * *? | любое число повторений, включая 0 (максимальный и минимальный квантификаторы) | /\s*/ /\S*?/ |
| + +? | одно и более повторений (максимальный и минимальный квантификаторы) | /\d+/ /\D+?/ |
| ? ?? | ноль или одно повторение (максимальный и минимальный квантификаторы) | /.?/ /[.a-z]??/ |
| {n} {n}? | ровно n повторений (максимальный и минимальный квантификаторы) | /\w{8}/ /\w{5}?/ |
| {n,} {n,}? | n и более повторений (максимальный и минимальный квантификаторы) | /\d{2,}/ /\d{5,}?/ |
| {n,m} {n,m}? | от n до m повторений включительно (максимальный и минимальный квантификаторы) | /[A-Z]{1,12}/ /[a-z]{0,3}?/ |