Представлення символів у регулярних виразах
Представлення символів за їхнім кодом
У деяких випадках бажано представляти символи за їхнім кодом.
Представлення | Пояснення | Кодування |
---|---|---|
\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.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.