# Метод finditer в регулярных выражениях Python

Метод `finditer` предназначен для получения итератора всех совпадений с регуляркой в строке. В первом параметре метода указываем регулярку, которую будем искать, во втором параметре - строку, которой ищем. Метод проверяет все совпадения, ища их слева направо. Метод возвращает итератор объектов сопоставления. Синтаксис метод `finditer` выглядит так:

`re.finditer(что искать, где искать)`

Давайте найдем все подстроки с цифрами в нашей строке:

`txt = 'aaaa 123 bbbb 456' print(re.finditer('\d+', txt))`

Результат выполнения кода:

`<callable_iterator object at 0x000002AA891300A0>`

А теперь давайте объявим переменную `res`, значением которой будет объект, полученный нами в предыдущем примере. Затем переберем его циклом:

`txt = 'aaaa 123 bbbb 456' res = re.finditer('\d+', txt) for el in res: print(el)`

После выполнения кода выведется два match-объекта:

`<re.Match object; span=(5, 8), match='123'> <re.Match object; span=(14, 17), match='456'>`

Данные объекты содержат информацию о всех совпадениях с регуляркой в виде кортежа. Можно вывести из них совпадения по индексу:

`for el in res: print(el[0])`

Результат выполнения кода:

`'123' '456'`

Дана строка:

`txt = '12 aaa 34 bbb 56 ccc'`

Выведите из нее все числа с помощью цикла.

← →
↑