АКЦИЯ: бесплатные месячные курсы по созданию сайтов
на выбор: верстка, JavaScript, PHP или фреймворки. Сегодня последний день для записи! Жми!
⊗pyPmREMFi 62 of 129 menu
Долгожданный Бесплатный курс по выкладке сайта на хостинг. МЫ УЖЕ НАЧАЛИ! Присоединяйтесь к нам!

Метод 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'

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

enru