regex

BackendЧастота употребления: очень высокая· Сложность: 3/5· Актуальность: 5/5· Тренд: стабильно

Regex (регулярное выражение) — формальный язык шаблонов для поиска, проверки и замены подстрок в тексте.

Подробно

Регулярное выражение описывает множество строк через метасимволы: квантификаторы (*, +, {n,m}), классы символов ([a-z], \d, \w), группы и альтернативы (|), а также якоря ^ и $. Regex поддерживается почти во всех языках — JavaScript (RegExp), Python (модуль re), Java, Go (RE2), Perl — и в утилитах grep, sed, awk, поэтому входит в базовый инструментарий разработчика, тестировщика и администратора. Основные сценарии: валидация ввода (email, телефон, ISBN), парсинг логов и конфигов, массовые замены, извлечение данных из неструктурированного текста. Главные подводные камни — катастрофический бэктрекинг (ReDoS), различия в диалектах (PCRE, POSIX, RE2) и низкая читаемость, поэтому сложные шаблоны рекомендуют комментировать или заменять парсером.

Примеры употребления

  • Валидация телефона в JS: /^\+?\d{1,3}[- ]?\d{3}[- ]?\d{2}[- ]?\d{2}$/.test(phone)
  • Поиск ошибок в логе: grep -E "ERROR|FATAL" app.log
  • Python: re.sub(r'\s+', ' ', text) — нормализация пробелов в строке
  • Проверка regex на катастрофический бэктрекинг: тестировать шаблон в regex101 или с таймаутом в pytest
#строки #шаблоны #валидация #парсинг

Источники