Представление символов в регулярных выражениях
Материал из Seo Wiki - Поисковая Оптимизация и Программирование
Содержание |
Представление символов по их коду
В некоторых случаях предпочтительно представление символов по их коду.
| Представление | Пояснение | Кодировка |
|---|---|---|
\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
| Забой
Должен находиться внутри квадратных скобок (иначе интерпретируется как граница слова). | 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