Njia finditer katika Semi za Kawaida za Python
Njia finditer imekusudiwa kwa
kupata iterator ya mechi zote zinazofanana na
regex kwenye mstari. Kwenye paramu ya kwanza ya
nia tunataja regex ambayo tutatafuta, kwenye paramu ya pili - mstari
ambao tunatafuta. Njia inakagua mechi zote,
ukizitafuta kutoka kushoto kwenda kulia. Njia inarudisha
iterator ya vitu vya mechi. Sintaksia ya
nia finditer inaonekana hivi:
re.finditer(kipi cha kutafuta, wapi kutafuta)
Wacha tupate herufi ndogo zote zenye nambari kwenye mstari wetu:
txt = 'aaaa 123 bbbb 456'
print(re.finditer('\d+', txt))
Matokeo ya utekelezaji wa kodi:
<callable_iterator object at 0x000002AA891300A0>
Sasa hebu tutangaze tofauti res,
thamani yake iwe kitu kilichopatikana
na sisi kwenye mfano uliopita. Kisha tuichapishe kwa kutumia kitanzi:
txt = 'aaaa 123 bbbb 456'
res = re.finditer('\d+', txt)
for el in res:
print(el)
Baada ya utekelezaji wa kodi matokeo mawili ya kitu-mechi yatatokwa:
<re.Match object; span=(5, 8), match='123'>
<re.Match object; span=(14, 17), match='456'>
Vitu hivi vyenye habari kuhusu mechi zote zinazofanana na regex kwa mfumo wa tuple. Inawezekana kutoa mechi kutoka kwao kwa kutumia index:
for el in res:
print(el[0])
Matokeo ya utekelezaji wa kodi:
'123'
'456'
Umepewa mstari:
txt = '12 aaa 34 bbb 56 ccc'
Tokoa nambari zote kutoka humo kwa kutumia kitanzi.