Регулярные выражения (regex) - это мощный инструмент для поиска, сопоставления и обработки текста. Освоив regex, вы сможете решать сложные задачи обработки данных одной строкой кода.
Что такое регулярные выражения?
Регулярные выражения - это последовательность символов, определяющая шаблон поиска. Они используются для:
- Поиска текста по сложным критериям
- Валидации данных (email, телефоны, URL)
- Замены текста по шаблонам
- Извлечения данных из неструктурированного текста
Основные элементы regex
Литералы
Обычные символы соответствуют сами себе:
cat- найдет слово "cat"123- найдет последовательность "123"
Метасимволы
Специальные символы с особым значением:
.- любой символ (кроме новой строки)*- ноль или более повторений+- одно или более повторений?- ноль или одно повторение^- начало строки$- конец строки
Символьные классы
[abc]- любой из символов a, b, c[a-z]- любая строчная буква[A-Z]- любая заглавная буква[0-9]- любая цифра[^abc]- любой символ кроме a, b, c
Предопределенные классы
\d- цифра (эквивалент [0-9])\w- буква, цифра или подчеркивание\s- пробельный символ\D- не цифра\W- не буква/цифра/подчеркивание\S- не пробельный символ
Практические примеры
Валидация email
^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
Этот паттерн проверяет базовый формат email адреса.
Поиск телефонных номеров
\+?[1-9]\d{1,14}
Находит международные телефонные номера.
Извлечение URL
https?://[^\s]+
Находит HTTP и HTTPS ссылки в тексте.
Валидация пароля
^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$
Проверяет, что пароль содержит строчные и заглавные буквы, цифры, спецсимволы и имеет длину не менее 8 символов.
Квантификаторы
{n}- точно n повторений{n,}- n или более повторений{n,m}- от n до m повторений*- эквивалент {0,}+- эквивалент {1,}?- эквивалент {0,1}
Группы и захват
(abc)- группа захвата(?:abc)- группа без захвата\1- обратная ссылка на первую группу
Флаги
i- игнорировать регистрg- глобальный поискm- многострочный режимs- точка соответствует новой строке
Инструменты для изучения
Используйте наш Тестер регулярных выражений для:
- Тестирования паттернов в реальном времени
- Визуализации совпадений
- Отладки сложных выражений
- Изучения примеров
Советы по оптимизации
- Избегайте жадных квантификаторов когда это возможно
- Используйте якоря ^ и $ для точного соответствия
- Группируйте альтернативы для лучшей производительности
- Тестируйте на больших объемах данных