Регулярные выражения POSIX – Классы символов

При рассмотрении метасимвола точки мы говорили о любом символе, идущем в строке. Однако часто требуется выделить определенное множество значений для него. Например, после слова php должна следовать цифра от 3 до 5. В таких случаях применяют классы символов.

Чтобы создать класс символов, нужно записать в квадратные скобки все доступные значения или их диапазон. Пример:
[0-9] – символ является цифрой;
[ a-z ] – символ является строчной буквой английского алфавита;
[A-Z] – символ является заглавной буквой английского алфавита;
[a-zA-Z] – символ является любой буквой английского алфавита;
[abc] – символ является любой из букв a, b или с.

Рассмотрим несколько примеров:
php[3-5] – строка должна содержать php3, php4 или php5;
[0-9][a-z] – строка содержит сочетание цифры и символа;
“[0-5][0-9]$ – строка должна состоять из двух цифр (от 00 до 59).

Обратите внимание на последний пример. Символ указывает на то, что строка должна начинаться с цифры из диапазона от 0 до 5, за которой следует еще одна любая цифра. При этом знак доллара $ указывает, что эта цифра должна завершать строку.

Ранее говорилось о том, что символ ^ указывает на начало строки. Помимо этого, его можно применять в классах символов, но он уже будет нести другую смысловую нагрузку.

Рассмотрим пример:
[^0-9] – строка должна содержать хотя бы один символ отличный от цифры;
^[^a-zA-Z] – строка должна начинаться с любого символа, кроме буквы английского алфавита;
[^aAeEiIoOuU] – строка не должна состоять целиком из гласных букв.

В регулярных выражениях типа POSIX для удобства были введены встроенные классы символов.

Обозначение Описание
[[:alnum:]] — Любая буква английского алфавита или цифра
[[:alpha:]] — Любая буква ([a-zA-Z])
[[:blank:]] — Пробельный символ или символ с кодом 0 и 255
[[:digit:]] — Любая цифра ([0-9])
[[:lower:]] — Любая строчная буква английского алфавита ([a-z])
[[:upper:]] — Любая заглавная буква английского алфавита ([A-Z])
[[:punct:]] — Любой знак пунктуации
[[:space:]] — Любой пробельный символ
[[:xdigit:]] — Любая шестнадцатеричная цифра ([0-9a-fA-F])

Вы можете следить за любыми ответами на эту запись через RSS 2.0 ленту. Вы можете оставить ответ, или trackback с вашего собственного сайта.

Оставьте отзыв

XHTML: Вы можете использовать следующие теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

 
Rambler's Top100