Метод finditer модуля re - итератор всех совпадений с регулярным выражением в Python

Метод finditer модуля re возвращает итератор всех совпадений с регулярным выражением в строке. В первом параметре метода указываем регулярку. Во втором параметре задаем строку, в которой ищем регулярку. В третьем необязательном параметре можно задать флаги. Метод проверяет все совпадения, ища их слева направо.

Синтаксис

import re re.finditer(регулярка, строка, [флаги])

Пример

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

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

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

<callable_iterator object at 0x000002AA891300A0>

Пример

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

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

После выполнения кода мы получим два объекта Match object:

<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 = 'aaaa 123 bbbb 456' res = re.finditer('(\d)(\d)', txt) for el in res: print(el[0], el[1], el[2])

После выполнения кода мы получим нулевой карман, т.е. всю подстроку, а также первый и второй символ из этой подстроки:

'12' '1' '2' '45' '4' '5'

Смотрите также

  • метод findall модуля re,
    который возвращает список из всех совпадений в строке
  • метод search модуля re,
    который ищет первое совпадение с регуляркой в строке
  • метод match модуля re,
    который ищет совпадение с регуляркой в начале строки
  • метод fullmatch модуля re,
    который ищет все совпадения с регуляркой в строке
  • объект Match object модуля re,
    который содержит информацию о совпадениях с регуляркой
  • метод split модуля re,
    который разбивает строку на список по указанному разделителю



Чат с GPT Компилятор