Сообщить об ошибке.

Функция findall() модуля re в Python

Поиск всех совпадений регулярного выражения в строке

Синтаксис:

import re

re.findall(pattern, string, flags=0)

Параметры:

  • pattern - строка, шаблон регулярного выражения,
  • string - строка для поиска,
  • flags=0 - один или несколько флагов.

Возвращаемое значение:

Описание:

Функция findall() модуля re возвращает все неперекрывающиеся совпадения шаблона pattern в строке string в виде списка строк или список кортежей. Строка сканируется слева направо, и совпадения возвращаются в найденном порядке.

Результат зависит от количества групп захвата в шаблоне:

  • Если групп нет, то возвращается список строк, соответствующих всему шаблону.
  • Если существует ровно одна группа, то возвращается список строк, соответствующих этой группе.
  • Если присутствует несколько групп, то возвращается список кортежей строк, соответствующих группам.

Группы без захвата не влияют на форму результата.

Примеры использования:

>>> import re
>>> text = 'ул. Карпинского, дом № 20, корпус 3, квартира 98'
# нет групп захвата
>>> match = re.findall(r'\d+', text)
>>> print(match)
# ['20', '3', '98']

# одна группа захвата
>>> match = re.findall(r'(?i)([а-я]+)', text)
>>> print(match)
# ['ул', 'Карпинского', 'дом', 'корпус', 'квартира']

# несколько групп захвата
>>> re.findall(r'(\w+)=(\d+)', 'set width=20 and height=10')
# [('width', '20'), ('height', '10')]