Python Glossary English

все Python 3reфункция

re.finditer()

поиск

Возвращает итератор объектов Match для всех совпадений. Экономит память при большом тексте.

Синтаксис

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

Итератор ленивый и одноразовый: второй проход по нему уже ничего не даст, так что при повторном использовании сразу оборачивайте результат в list(). В отличие от findall(), который отдаёт строки (а при наличии групп — кортежи групп), здесь приходят полноценные объекты Match со start(), end() и group(n); совпадения идут слева направо и никогда не перекрываются.

Примеры

import re
for m in re.finditer(r'\d+', 'a1 b22 c333'):
    print(m.group(), m.start())  # → ? три строки: «1 1», «22 4», «333 8»
matches = list(re.finditer(r'[A-Z]', 'Hello World'))
print(len(matches)) # → 2
print(matches[0].group()) # → H

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности