Регулярные выражения дают программисту новый взгляд на текстовые данные: вместо отдельных символов и простых подстрок он начинает мыслить обобщенными шаблонами, что помогает ему находить более простые и эффективные решения. В таблице 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}?/ |
Вильям Л Саймон , Вильям Саймон , Наталья Владимировна Макеева , Нора Робертс , Юрий Викторович Щербатых
Зарубежная компьютерная, околокомпьютерная литература / ОС и Сети, интернет / Короткие любовные романы / Психология / Прочая справочная литература / Образование и наука / Книги по IT / Словари и Энциклопедии