все 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Сообщить о неточности