Представление символов в регулярных выражениях
Представление символов по их коду
В некоторых случаях предпочтительно представление символов по их коду.
Представление | Пояснение | Кодировка |
---|---|---|
\0n |
n — восьмеричное число от 0 до 377 | 8-битная |
\xdd |
d — шестнадцатеричная цифра | |
\udddd |
16-битная (Юникод) |
Управляющие символы
Представление | Символ | Обозначение | Расшифровка |
---|---|---|---|
\t |
Горизонтальная табуляция | HT |
Horizontal tabulation |
\v |
Вертикальная табуляция | VT |
Vertical tabulation |
\r |
Возврат каретки | CR |
Carriage return |
\n |
Перевод строки (прогон строки, подача строки) | LF |
Line feed |
\f |
Конец страницы (прогон страницы) | FF |
Form feed |
\a |
Звонок | BEL |
Bell character |
\e |
Ключ (управляющий символ, Escape-символ) | ESC |
Escape character |
\b |
Backspace
Должен находиться внутри квадратных скобок (иначе интерпретируется как граница слова). |
BS |
Backspace |
\cA … \cZ |
Ctrl+A … Ctrl+Z
Например, последовательность
Эквивалентно
|
Сокращённые обозначения символьных классов
Для часто используемых символьных классов существуют краткие обозначения.
Представление | Эквивалент | Значение |
---|---|---|
\d |
[0-9] |
Цифра |
\D |
[^\d] |
Любой символ, кроме цифры |
\w |
[A-Za-zА-Яа-я0-9_] |
Символы, образующие «слово» (буквы, цифры и символ подчёркивания)[1] |
\W |
[^\w] |
Символы, не образующие «слово» |
\s |
[ \t\v\r\n\f] |
Пробельный символ |
\S |
[^\s] |
Непробельный символ |
Символьные классы POSIX
Многие диапазоны символов зависят от выбранных настроек локализации. POSIX стандартизовал объявление некоторых классов и категорий символов, как показано в следующей таблице.
POSIX-класс | Эквивалент | Значение |
---|---|---|
[:upper:] |
[A-Z] |
Символы верхнего регистра |
[:lower:] |
[a-z] |
Символы нижнего регистра |
[:alpha:] |
[[:upper:][:lower:]] |
Буквы |
[:digit:] |
[0-9] , т. е. \d |
Цифры |
[:xdigit:] |
[[:digit:]A-Fa-f] |
Шестнадцатеричные цифры |
[:alnum:] |
[[:alpha:][:digit:]] |
Буквы и цифры |
[:word:] |
[[:alnum:]_] , т. е. \w |
Символы, образующие «слово» |
[:punct:] |
[-!"#$%&'()*+,./:;<=>?@[\\\]_`{|}~] |
Знаки пунктуации |
[:blank:] |
[ \t] |
Пробел и табуляция |
[:space:] |
[[:blank:]\v\r\n\f] , т. е. \s |
Пробельные символы |
[:cntrl:] |
[\x00-\x1F\x7F] |
Управляющие символы |
[:graph:] |
[\x21-\x7E] |
Печатные символы |
[:print:] |
[\x20-\x7E] , т. е. [[:graph:] ] |
Печатные символы с пробелом |
Использование класса возможно лишь внутри квадратных скобок
(пример частой ошибки —
^[:upper:]il+$
вместо
^[[:upper:]]il+$
).
Примечания
- Указанный эквивалент неполон, так как в диапазон входят все буквы всех языков.
См. также
Литература
- Фридл, Дж. Регулярные выражения. — СПб.: «Питер», 2001. — 352 с. — (Библиотека программиста). — ISBN 5-318-00056-8.
- Смит, Билл. Методы и алгоритмы вычислений на строках (regexp) = Computing Patterns in Strings. — М.: «Вильямс», 2006. — 496 с. — ISBN 0-201-39839-7.
- Форта, Бен. Освой самостоятельно регулярные выражения. 10 минут на урок = Sams Teach Yourself Regular Expressions in 10 Minutes. — М.: «Вильямс», 2004. — 192 с. — ISBN 0-672-32566-7.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.