Представление символов в регулярных выражениях — Википедия
Представление символов по их коду
[править | править код]В некоторых случаях предпочтительно представление символов по их коду.
Представление | Пояснение | Кодировка |
---|---|---|
\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:]] | Буквы и цифры |
[: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.