Метод 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'
Выведите из нее все числа с помощью цикла.