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

Регулярные выражения (или регулярные выражения, RegExp) представляют собой мощный инструмент для поиска, анализа и манипуляции текста с использованием шаблонов.

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

Шаблон бота с самыми распространенными регулярными выражениями можно скопировать по этой ссылке: https://senler.ru/cabinet/botshare/1230502_c0f5a5457766fc24ea3ec55dd738cf46

Основные понятия

  1. Составные части:

  • Обычные символы: Представляют собой сами себя и соответствуют точно таким же символам в тексте.

  • Метасимволы: Особые символы, представляющие классы или операции, такие как ., *, +, ?, [ ] и другие. Метасимволы можно вставить как обычные символы, если предварительно экранировать их с помощью обратного слеша \.

  1. Группы и объединение групп. Группы позволяют объединять части регулярного выражения вместе и применять операции ко всей группе. Например:

  • ^: соответствует началу строки.

  • $: соответствует концу строки.

  • (abc): Группа, соответствующая последовательности "abc".

  • a(bc): Группа, соответствующая "bc", но только если перед ней идет "a".

  1. Условный оператор или (|) Оператор | используется для создания альтернатив в регулярных выражениях. Например:

  • cat|dog: Соответствует "cat" или "dog".

  • (red|blue)car: Соответствует "redcar" или "bluecar".

Классы символов, диапазоны и квантификаторы

  1. Одиночные символы

Обычные символы в регулярных выражениях представляют собой сами себя и соответствуют точно таким же символам в тексте.

  1. Диапазоны символов

Диапазоны позволяют указать диапазон символов, который может соответствовать в тексте. Например:

  • [0-9] соответствует любой цифре.

  • [a-z] соответствует любой строчной букве.

  • [A-Z] соответствует любой заглавной букве.

  • [aeiou] соответствует любой из гласных букв.

  • [a-zA-Z] соответствует любой букве в верхнем или нижнем регистре.

  • [а-яёА-ЯЁ]: соответствует любой букве кириллицы, включая Ё.

  • [0-9a-fA-F] соответствует любой шестнадцатеричной цифре.

  1. Отрицание класса символов

Добавление ^ в начале класса символов инвертирует его, позволяя выбрать любой символ, кроме тех, что указаны в классе. Например:

  • [^0-9] соответствует любому символу, кроме цифры.

  1. Специальные классы символов

  • \d соответствует любой цифре (то же, что и [0-9]).

  • \D соответствует любому не цифровому символу.

  • \w соответствует любой букве или цифре (то же, что и [a-zA-Z0-9]).

  • \W соответствует любому не алфавитно-цифровому символу.

  • \s соответствует любому символу пробела (пробел, табуляция, новая строка).

  • \S соответствует любому символу, не являющемуся пробелом.

  1. Квантификаторы

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

Основные квантификаторы:

  • * (звездочка): Позволяет нулю или более повторений предыдущего символа или группы символов. Пример: a* соответствует "a", "aa", "aaa" и так далее.

  • + (плюс): Требует одно или более повторений предыдущего символа или группы символов. Пример: b+ соответствует "b", "bb", "bbb" и так далее.

  • ? (вопросительный знак): Опциональный символ, который может встречаться ноль или один раз. Пример: colou?r соответствует "color" или "colour".

Квантификаторы с фиксированным числом повторений

  • {n}: Точное количество повторений. Пример: \d{3} соответствует ровно трем цифрам.

  • {n,}: Не менее n повторений. Пример: \w{2,} соответствует двум или более буквам, цифрам.

  • {n,m}: От n до m повторений. Пример: [a-zA-Z]{1,3} соответствует одной, двум или трём буквам в верхнем или нижнем регистре.

Инструменты для тестирования регулярных выражений

Существует множество онлайн-инструментов, которые помогут вам тестировать и проверять регулярные выражения.

Два самых удобных инструмента для составления регулярных выражений: Regex101 и RegExr. (данные инструменты предоставлены в порядке рекомендации, качество и корректность их работы вне зоны ответственность сервиса Senler)

Last updated