Представлення символів у регулярних виразах

Представлення символів за їхнім кодом

У деяких випадках бажано представляти символи за їхнім кодом.

Представлення Пояснення Кодування
\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

Наприклад, послідовність \cM\cJ відповідає керуючим символам CR LF.

Еквівалентно \x01 ... \x1A.

Скорочені позначення символьних класів

Для часто використовуваних символьних класів існують короткі позначення.

Представлення Еквівалент Значення
\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+$).

Примітки

  1. Зазначений еквівалент неповний, тому що в діапазон входять усі літери всіх мов.

Див. також

Література

  • Фридл, Дж. Регулярные выражения. — Спб. : «Питер», 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.