Belov Solutions

Классы символов POSIX и шестнадцатеричные, восьмеричные значения

Введение

Классы символов POSIX и шестнадцатеричные/восьмеричные значения в регулярных выражениях предоставляют дополнительные способы указания символов. POSIX-классы стандартизируют наборы символов, а шестнадцатеричные/восьмеричные значения позволяют указывать символы по их кодам ASCII.

Классы символов POSIX

POSIX-классы — это сокращённые формы для часто используемых наборов символов. Они заключаются в [:class:] внутри квадратных скобок. Основные классы:

Класс Описание
[:alnum:] Любая цифра или буква ([a-zA-Z0-9])
[:alpha:] Любая буква ([a-zA-Z])
[:blank:] Пробел или табуляция ([ \t])
[:cntrl:] Управляющие символы ASCII (коды 0–31 и 127)
[:digit:] Любая цифра ([0-9])
[:graph:] Печатаемые символы, кроме пробела
[:lower:] Любая строчная буква ([a-z])
[:print:] Любой печатаемый символ
[:punct:] Символы, не относящиеся к [:alnum:] или [:cntrl:]
[:space:] Любой пробельный символ ([ \f\n\r\t\v])
[:upper:] Любая прописная буква ([A-Z])
[:xdigit:] Шестнадцатеричная цифра ([a-fA-F0-9])

Пример: Поиск RGB-цветов в HTML

Текст:

body {
    background-color: #fefbd8;
}
h1 {
    background-color: #0000ff;
}
div {
    background-color: #d0f4e6;
}
span {
    background-color: #f08970;
}

Регулярное выражение: #[[:xdigit:]][[:xdigit:]][[:xdigit:]][[:xdigit:]][[:xdigit:]][[:xdigit:]]

Результат:

body {
    background-color: #fefbd8;
}
h1 {
    background-color: #0000ff;
}
div {
    background-color: #d0f4e6;
}
span {
    background-color: #f08970;
}

Анализ: Класс [:xdigit:] заменяет [0-9A-Fa-f], находя шестизначные шестнадцатеричные RGB-цвета. Внешние [] обязательны для POSIX-классов.

Шестнадцатеричные и восьмеричные значения

Символы можно указывать по их ASCII-кодам:

  • Шестнадцатеричные: Используйте \xNN, например, \x0A эквивалентно \n (перевод строки).
  • Восьмеричные: Используйте \0NN или \0NNN, например, \011 эквивалентно \t (табуляция).

Предупреждение

POSIX-классы поддерживаются не во всех реализациях регулярных выражений, и их поведение может немного отличаться. Всегда заключайте их в [], например, [[:xdigit:]].

Заключение

POSIX-классы и шестнадцатеричные/восьмеричные значения предоставляют гибкие способы указания символов в регулярных выражениях. POSIX-классы упрощают работу с наборами символов, а числовые значения полезны для точного указания редких символов.

Отзывы

Оставить отзыв

Ваша эл. почта не будет опубликована