Links

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

Регулярные выражения (или регулярные выражения, RegExp) представляют собой мощный инструмент для поиска, анализа и манипуляции текста с использованием шаблонов.
Регулярные выражения - это строки символов, которые задают шаблоны поиска в тексте. Они позволяют выполнять разнообразные операции, такие как поиск, сопоставление и извлечение подстрок.
Шаблон бота с самыми распространенными регулярными выражениями можно скопировать по этой ссылке: https://senler.ru/cabinet/botshare/1230502_c0f5a5457766fc24ea3ec55dd738cf46
Основные понятия
  1. 1.
    Составные части:
  • Обычные символы: Представляют собой сами себя и соответствуют точно таким же символам в тексте.
  • Метасимволы: Особые символы, представляющие классы или операции, такие как ., *, +, ?, [ ] и другие. Метасимволы можно вставить как обычные символы, если предварительно экранировать их с помощью обратного слеша \.
  1. 2.
    Группы и объединение групп. Группы позволяют объединять части регулярного выражения вместе и применять операции ко всей группе. Например:
  • ^: соответствует началу строки.
  • $: соответствует концу строки.
  • (abc): Группа, соответствующая последовательности "abc".
  • a(bc): Группа, соответствующая "bc", но только если перед ней идет "a".
  1. 3.
    Условный оператор или (|) Оператор | используется для создания альтернатив в регулярных выражениях. Например:
  • cat|dog: Соответствует "cat" или "dog".
  • (red|blue)car: Соответствует "redcar" или "bluecar".
Классы символов, диапазоны и квантификаторы
  1. 1.
    Одиночные символы
Обычные символы в регулярных выражениях представляют собой сами себя и соответствуют точно таким же символам в тексте.
  1. 2.
    Диапазоны символов
Диапазоны позволяют указать диапазон символов, который может соответствовать в тексте. Например:
  • [0-9] соответствует любой цифре.
  • [a-z] соответствует любой строчной букве.
  • [A-Z] соответствует любой заглавной букве.
  • [aeiou] соответствует любой из гласных букв.
  • [a-zA-Z] соответствует любой букве в верхнем или нижнем регистре.
  • [а-яёА-ЯЁ]: соответствует любой букве кириллицы, включая Ё.
  • [0-9a-fA-F] соответствует любой шестнадцатеричной цифре.
  1. 3.
    Отрицание класса символов
Добавление ^ в начале класса символов инвертирует его, позволяя выбрать любой символ, кроме тех, что указаны в классе. Например:
  • [^0-9] соответствует любому символу, кроме цифры.
  1. 4.
    Специальные классы символов
  • \d соответствует любой цифре (то же, что и [0-9]).
  • \D соответствует любому не цифровому символу.
  • \w соответствует любой букве или цифре (то же, что и [a-zA-Z0-9]).
  • \W соответствует любому не алфавитно-цифровому символу.
  • \s соответствует любому символу пробела (пробел, табуляция, новая строка).
  • \S соответствует любому символу, не являющемуся пробелом.
  1. 5.

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

Квантификаторы в регулярных выражениях определяют количество повторений предыдущего символа, символьного класса или группы символов. Они делают шаблоны более гибкими и могут существенно упростить создание более сложных выражений.
Основные квантификаторы:
  • * (звездочка): Позволяет нулю или более повторений предыдущего символа или группы символов. Пример: 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)