Belov Solutions

Совпадение с одним из нескольких символов в регулярных выражениях


Введение

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

Наборы символов

В отличие от точки (.), которая совпадает с любым символом, наборы символов, заключённые в квадратные скобки ([]), позволяют искать только указанные символы. Рассмотрим пример с файлами:

Текст:

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

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

.a.\.xls

Результат:

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

Анализ: Шаблон .a.\.xls находит файлы, где второй символ — a, а за ним следует любой символ и точка с расширением xls. Однако он включает нежелательный файл cal.xls.

Ограничение набора символов

Чтобы искать только файлы, начинающиеся с n или s, используйте набор [ns]:

Текст:

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

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

[ns]a.\.xls

Результат:

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

Анализ: Шаблон [ns]a.\.xls ограничивает первый символ буквами n или s, исключая cal.xls. Остальная часть шаблона: a — буква a, . — любой символ, \.xls — точка и расширение xls.

Наборы символов и регистр

Наборы символов можно использовать для поиска без учёта регистра. Пример:

Текст:

Фраза "регулярное выражение" часто сокращается как РегЭкс или регэкс.

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

[Рр]ег[Ээ]кс

Результат:

Фраза "регулярное выражение" часто сокращается как РегЭкс или регэкс.

Анализ: Наборы [Рр] и [Ээ] соответствуют Р или р и Э или э, находя РегЭкс и регэкс, но не РЕГЭКС.

Примечание: Для полного игнорирования регистра используйте флаг i (например, в JavaScript: /регэкс/i).

Заключение

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

Отзывы

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

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