Mediumregex
Что такое re (регулярные выражения)?
1Постановка
Разберём, что от вас хотят в этом вопросе и как к нему подступиться на собеседовании.
2Решение
re — модуль regex. Функции: match (с начала), search (в любом месте), fullmatch (вся строка), findall, finditer, sub (replace), split.
import re
# Извлечение данных
m = re.search(r'(\d{4})-(\d{2})-(\d{2})', '2024-01-15')
if m:
year, month, day = m.groups() # ('2024', '01', '15')
# Named groups
m = re.search(r'(?P<year>\d{4})', text)
m.group('year')
# Compiled (для повторного использования)
email_re = re.compile(r'[\w.+-]+@[\w-]+\.[\w.]+')
email_re.findall(text)
# Замена
re.sub(r'\s+', ' ', text) # нормализация пробелов- Patterns:
.(any),\d/\w/\s,[abc],[^abc],*/+/?,{n,m},|,()(group),(?:...)(non-capturing),(?=...)(lookahead),(?<=...)(lookbehind); - flags:
re.IGNORECASE,re.DOTALL,re.MULTILINE,re.VERBOSE; - Greedy vs lazy:
*?/+?; - Catastrophic backtracking — опасность сложных patterns на длинных строках.
3Как отвечать
- Сначала уточните условия и ограничения, покажите аналитическое мышление.
- Рассуждайте вслух — интервьюеру важен ход мысли, а не только финальный ответ.
- Оцените сложность по времени и памяти (Big-O), если это алгоритмический вопрос.
💡
На реальном собеседовании Alffert подскажет развёрнутый ответ в реальном времени.