101 of 151 menu

Метод finditer на модула re

Методът 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,
    който разделя низа на списък по указан разделител
Български
AfrikaansAzərbaycanবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ние използваме бисквитки за работата на сайта, анализ и персонализация. Обработката на данни се извършва в съответствие с Политика за поверителност.
приемам всички настройки отхвърляне