Belov Solutions

Применение диапазонов в наборах символов в регулярных выражениях

Введение

Эта статья объясняет, как использовать диапазоны в наборах символов с помощью метасимвола дефиса (-) в регулярных выражениях. Вы узнаете, как упростить поиск цифр и букв, а также рассмотрите примеры с файлами и значениями RGB. Примеры подходят для всех платформ с поддержкой регулярных выражений.

Диапазоны в наборах символов

Наборы символов могут включать диапазоны, заданные метасимволом -, например, [0-9] для цифр. Это упрощает поиск по сравнению с перечислением всех символов. Рассмотрим пример с файлами:

Текст:

sales1.xls
orders3.xls
sales2.xls
sales3.xls
apac1.xls
europe2.xls
sam.xls
na1.xls
na2.xls
sa1.xls
cal.xls

Регулярное выражение:

[ns]a[0123456789]\.xls

Результат:

sales1.xls
orders3.xls
sales2.xls
sales3.xls
apac1.xls
europe2.xls
sam.xls
na1.xls
na2.xls
sa1.xls
cal.xls

Анализ: Шаблон [ns]a[0123456789]\.xls ищет файлы, начинающиеся с n или s, затем a, затем цифру, за которой следует .xls. Файл sam.xls исключён, так как m не является цифрой.

Упрощение с диапазонами

Диапазон [0-9] эквивалентен [0123456789]. Пример с тем же текстом:

Регулярное выражение:

[ns]a[0-9]\.xls

Результат:

sales1.xls
orders3.xls
sales2.xls
sales3.xls
apac1.xls
europe2.xls
sam.xls
na1.xls
na2.xls
sa1.xls
cal.xls

Анализ: Шаблон [0-9] упрощает запись, сохраняя тот же результат.

Типы диапазонов

Диапазоны не ограничиваются цифрами. Основные варианты:

  • A-Z: все прописные буквы от A до Z.
  • a-z: все строчные буквы от a до z.
  • A-F: прописные буквы от A до F.
  • A-z: символы ASCII от A до z (включает символы, такие как [ и `, что делает его менее полезным).

Совет: Убедитесь, что начало диапазона не больше конца (например, [3-1] недопустимо).

Пример с цветами RGB

Диапазоны полезны для поиска сложных шаблонов, таких как шестнадцатеричные коды RGB в CSS:

Текст:

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

Регулярное выражение:

#[0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f]

Результат:

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

Анализ: Шаблон ищет #, за которым следуют шесть символов из диапазона [0-9A-Fa-f], что соответствует шестнадцатеричным кодам RGB.

Заключение

Диапазоны в наборах символов, обозначенные дефисом, упрощают поиск цифр, букв и других символов. Они делают регулярные выражения более компактными и читаемыми. Следующая статья рассмотрит, как исключать символы из наборов.

Отзывы

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

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