Регулярные выражения (англ. regular expression, RegEx) — это инструмент для работы с текстом, который сравнивает определенную строку с заданным шаблоном. Другими словами, регулярное выражение - последовательность символов, которая задаёт шаблон поиска. Регулярные выражения используются для поиска, замены и проверки текста на соответствие определённым правилам.
Основные элементы регулярных выражений
Символы
.
— соответствует любому символу, кроме символа новой строки.
[abc]
— соответствует любому символу из списка: a, b, или c.
[^abc]
— соответствует любому символу, кроме a, b, и c.
[a-z]
— диапазон, соответствует всем строчным буквам от a до z.
Квантификаторы
*
— соответствует 0 или более повторений.
+
— соответствует 1 или более повторений.
?
— соответствует 0 или 1 повторению.
{n}
— точно n повторений.
{n,}
— n или более повторений.
{n,m}
— от n до m повторений.
Якоря
^
— начало строки.
$
— конец строки.
\b
— граница слова.
\B
— не граница слова.
Группировка и альтернативы
(abc)
— группа, соответствует abc как единому элементу.
(a|b)
— альтернатива, соответствует либо a, либо b.
Экранирование
Символы с особым значением (например, .
, *
, ?
) нужно экранировать с помощью обратного слэша (\
), если они должны восприниматься как обычные символы. Например, \.
соответствует точке.
Примеры использования регулярных выражений
Поиск слова в тексте
Шаблон: hello
Соответствует любому вхождению слова "hello".
Проверка email:
Шаблон ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
Соответствует адресам электронной почты, например,
Поиск числа
Шаблон: \d+
Соответствует одному или нескольким числам, например, 12345.
Замена пробелов на тире
Шаблон: \s
Замена: -
Пример: строка "Hello World" преобразуется в "Hello-World".
Поиск HTML-тегов
Шаблон: <[^>]+>
Соответствует любому HTML-тегу
Где применяются регулярные выражения
Валидация данных. Проверка формата номеров телефонов, email, дат и других данных.
Парсинг текста. Извлечение нужной информации из текста (например, номера, теги, слова).
Поиск и замена. Удаление или замена определённых частей текста.
Обработка логов. Автоматическое извлечение ошибок, IP-адресов или других данных из лог-файлов.
Текстовый анализ. Поиск паттернов или аномалий в больших текстовых массивах. Полезные инструменты для работы с RegEx
Применение в языках программирования
- Python: модуль re;
- JavaScript: объект RegExp;
- Java: класс Pattern.
Кроме того, многие текстовые редакторы (например, Visual Studio Code, Sublime Text, Notepad++) поддерживают работу с регулярными выражениями.
Таким образом, регулярные выражения — универсальный инструмент, который значительно упрощает обработку текста, от простых поисков до сложного анализа.