Глава 7: Регулярные выражения.
7.3.1 Образцы, обозначающие один символ
Самый простой и самый распространенный символ, встречающийся в регулярных выражениях, — это одиночный символ, соответствующий самому себе. Другими словами, наличие буквы а в регулярном выражении требует наличия соответствующей буквы а в строке.
Следующий из самых известных символов сопоставления — точка ("."). Точка обозначает любой одиночный символ, кроме символа новой строки (\n). Например, образцу /а./ соответствует любая двухбуквенная последовательность, которая начинается с буквы а и не является последовательностью "а\n".
Класс символов сопоставления задается списком символов, заключенных в квадратные скобки. Чтобы строка считалась совпавшей с образцом, в соответствующей ее части должен присутствовать один и только один из этих символов. Например, образцу
/[abode]
соответствует строка, содержащая любую из первых пяти строчных букв алфавита, тогда как образцу
/[aeiouAEIQU]
соответствует любая из первых пяти гласных, причем как строчных, так и прописных. Если вы хотите вставить в список правую квадратную скобку (]), поставьте перед ней обратную косую или же поставьте эту скобку на первое место в списке. Диапазоны символов (например, от а до z) можно приводить в сокращенной записи, указав конечные точки диапазона через дефис (-). Чтобы включить в список дефис как таковой, поставьте перед ним обратную косую или поместите его в конец. Вот еще несколько примеров:
[0123456789] # обозначает любую цифру
[0-9] # то же самое
[0-9\-] # обозначает цифры 0-9 или знак минус
[a-z0-9] # обозначает любую строчную букву или цифру
[a-zA-ZO-9_] # обозначает любую букву, цифру или знак подчеркивания
Существует также такое понятие, как отрицание класса символов: оно обозначается знаком ^, который ставится сразу же за левой скобкой. Такому классу символов соответствует любой символ, отсутствующий в этом списке. Например:
["0-9] # обозначает любой нецифровой символ
["aeiouAElOU] # обозначает любую негласную букву
["\"] # обозначает любой символ, кроме символа "
Для удобства пользователя некоторые распространенные классы символов определены заранее. Они представлены в таблице 7.1.
Таблица 7.1. Предопределенные классы символов
Конструкция |
Эквивалентный класс |
Конструкция с отрицанием |
Эквивалентный класс с отрицанием |
\d (цифра) \w (обычный символ) \s (пробельный символ) |
[0-9] [a-zA-ZO-9] [\r\t\n\f] |
\d (нецифровые символы) \w (специальные символы) \s (непробельный символ) |
[^0-9] [^a-zA-ZO-9] [^\r\t\n\f] |
Образцу \d соответствует одна цифра. Образцу \w формально соответствует один обычный символ, но на самом деле ему соответствует любой символ, который допустим в именах переменных Perl. Образцу \s соответствует один пробельный символ. К пробельным символам относятся пробел, возврат каретки (редко используемый в UNIX), символ табуляции, символы перехода на новую строку и на новую страницу. Варианты конструкций с 'использованием прописных букв соответствуют дополнениям (отрицаниям) этих классов. Так, \w обозначает один специальный символ, \s — один символ, который не является пробельным (т.е. является буквой, знаком препинания, управляющим символом и т.д.), a \D — один нецифровой символ.
Приведенные выше конструкции можно использовать при задании других классов символов:
[\da-fA-F] # соответствует одной шестнадцатеричной цифре
Назад | Вперед
Содержание (общее) | Содержание раздела | Содержание подраздела
Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:
|