Регулярные выражения: мощный инструмент для работы с текстом - WebHouse

Регулярные выражения: мощный инструмент для работы с текстом

Регулярные выражения (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 - точка соответствует новой строке

Инструменты для изучения

Используйте наш Тестер регулярных выражений для:

  • Тестирования паттернов в реальном времени
  • Визуализации совпадений
  • Отладки сложных выражений
  • Изучения примеров

Советы по оптимизации

  • Избегайте жадных квантификаторов когда это возможно
  • Используйте якоря ^ и $ для точного соответствия
  • Группируйте альтернативы для лучшей производительности
  • Тестируйте на больших объемах данных