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