Введение
Для указания точного количества совпадений в регулярных выражениях используется запись в фигурных скобках {n}, где n — нужное число. Например, {3} обозначает три совпадения предыдущего символа или набора. Если совпадений меньше, общее совпадение не произойдёт.
Пример с цветами RGB
Рассмотрим значения цвета RGB, состоящие из шести шестнадцатеричных символов. Ранее использовался шаблон:
# [0-9A-Fa-f] [0-9A-Fa-f] [0-9A-Fa-f] [0-9A-Fa-f] [0-9A-Fa-f] [0-9A-Fa-f] В статье про Классы символов POSIX он был упрощён с помощью POSIX-класса:
# [[:xdigit:]] [[:xdigit:]] [[:xdigit:]] [[:xdigit:]] [[:xdigit:]] [[:xdigit:]] Оба подхода требуют повторения набора шесть раз. Исправим это с помощью интервалов:
Текст:
div {
background-color: #fefbdB;
background-color: #0000ff;
background-color: #d0f4e6;
}
span {
background-color: #f08970;
}
Регулярное выражение:
#[A-Fa-f0-9]{6}
Результат:
div {
background-color: #fefbdB;
background-color: #0000ff;
background-color: #d0f4e6;
}
span {
background-color: #f08970;
} Анализ: Шаблон [A-Fa-f0-9]{6} совпадает с шестью шестнадцатеричными символами, упрощая запись.
Преимущества интервалов
Использование {n} делает код компактным и читаемым. Оно совместимо с POSIX-классами, такими как [:xdigit:], обеспечивая точное соответствие формату RGB.
Заключение
Фигурные скобки позволяют задавать точное количество совпадений, что особенно полезно для работы с форматированными данными, такими как цвета RGB.
Отзывы