re.search() |
Ищет первое совпадение |
Возвращает Match-объект
search(r'\d+', 'a123') → Match '123' |
Match-объект с доступом к группам
search(r'(\d+)', 'a123') → Match, .group(1) = '123' |
Проверить наличие шаблона |
re.match() |
Ищет в начале строки |
Match или None
match(r'\d+', '123a') → Match '123' |
Match с группами
match(r'(\d+)([a-z]+)', '123abc') → .group(1) = '123', .group(2) = 'abc' |
Валидация начала строки |
re.fullmatch() |
Вся строка должна совпадать |
Match или None
fullmatch(r'\d+', '123') → Match |
Match с группами
fullmatch(r'(\d+)-(\d+)', '12-34') → группы '12', '34' |
Полная валидация формата |
re.findall() |
Находит все совпадения |
Список строк
findall(r'\d+', 'a1b2c3') → ['1','2','3'] |
Список кортежей групп
findall(r'(\d+)([a-z])', 'a1b2c') → [('1','b'), ('2','c')] |
Извлечь все данные простого формата |
re.finditer() |
Находит все совпадения |
Итератор Match-объектов
[m.group() for m in finditer(r'\d+', 'a1b2')] → ['1','2'] |
Итератор, .group() = всё, .group(1) = группа
[m.group(1) for m in finditer(r'(\d+)', 'a1b2')] → ['1','2'] |
Нужны позиции или полные совпадения с группами |
re.split() |
Разбивает строку |
Список без разделителей
split(r'\d+', 'a1b2c') → ['a','b','c',''] |
Список с разделителями
split(r'(\d+)', 'a1b2c') → ['a','1','b','2','c',''] |
Разбить строку (группы сохраняют разделители) |
re.sub() |
Заменяет совпадения |
Простая замена
sub(r'\d+', 'X', 'a1b2') → 'aXbX' |
Можно использовать группы в замене
sub(r'(\d+)', r'[\1]', 'a1b2') → 'a[1]b[2]' |
Замена текста (группы для переиспользования) |
re.subn() |
Заменяет + считает |
('aXbX', 2)
subn(r'\d+', 'X', 'a1b2') |
('a[1]b[2]', 2)
subn(r'(\d+)', r'[\1]', 'a1b2') |
Замена + нужно количество замен |