Метод 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
,
который разбивает строку на список по указанному разделителю