Введение
Эта статья объясняет, как использовать диапазоны в наборах символов с помощью метасимвола дефиса (-) в регулярных выражениях. Вы узнаете, как упростить поиск цифр и букв, а также рассмотрите примеры с файлами и значениями 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.
Заключение
Диапазоны в наборах символов, обозначенные дефисом, упрощают поиск цифр, букв и других символов. Они делают регулярные выражения более компактными и читаемыми. Следующая статья рассмотрит, как исключать символы из наборов.
Отзывы