Представлення символів у регулярних виразах
Перейти до навігації
Перейти до пошуку
У деяких випадках бажано представляти символи за їхнім кодом.
Представлення | Пояснення | Кодування |
---|---|---|
\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-Клас | Еквівалент | Значення |
---|---|---|
[: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.