Njia finditer ya moduli re
Njia finditer ya moduli re
hurudisha iterator wa mechi zote za usemi wa kawaida
katika mstari wa maandishi. Katika parameta ya kwanza ya njia tunabainisha
usemi wa kawaida. Katika parameta ya pili tunaweka
mstari wa maandishi, ambao tunatafutia usemi wa kawaida. Katika parameta ya tatu
ya hiari tunaweza kubainisha bendera.
Njia inakagua mechi zote, zikitafuta
kutoka kushoto kwenda kulia.
Sintexia
import re
re.finditer(usemi wa kawaida, mstari wa maandishi, [bendera])
Mfano
Wacha tupate kila kipande cha maandishi chenye tarakimu ndani ya mstari wetu wa maandishi:
txt = 'aaaa 123 bbbb 456'
res = re.finditer('\d+', txt)
print(res)
Matokeo ya utekelezaji wa kodi:
<callable_iterator object at 0x000002AA891300A0>
Mfano
Sasa hebu tutangaze kutofautisha res,
thamani yake ikikuwa kitu kilichopatikana
kwetu katika mfano uliopita. Kisha tuikamate
kwa kitanzi:
txt = 'aaaa 123 bbbb 456'
res = re.finditer('\d+', txt)
for el in res:
print(el)
Baada ya utekelezaji wa kodi tutapata vitu viwili vya Match object:
<re.Match object; span=(5, 8), match='123'>
<re.Match object; span=(14, 17), match='456'>
Vitu hivi vyote vina habari kuhusu mechi zote za usemi wa kawaida kwa mfumo wa tuple. Tunaweza kuzitoa mechi kutoka kwao kwa kutumia fahirisi:
for el in res:
print(el[0])
Matokeo ya utekelezaji wa kodi:
'123'
'456'
Mfano
Kwa uwazi zaidi hebu wakati wa utafutaji wa mechi tutumie mifuko. Wakati wa kukamata vitu kwa kitanzi tuonyeshe mechi ya kwanza (itakayokuwa mfuko wa sifuri), na pia vipengele vyake, pia vilivyogawanyika katika mifuko yao:
txt = 'aaaa 123 bbbb 456'
res = re.finditer('(\d)(\d)', txt)
for el in res:
print(el[0], el[1], el[2])
Baada ya utekelezaji wa kodi tutapata mfuko wa sifuri, yaani kipande chote cha maandishi, na pia herufi ya kwanza na ya pili kutoka kwenye kipande hiki cha maandishi:
'12' '1' '2'
'45' '4' '5'
Angalia pia
-
Njia
findallya modulire,
ambayo hurudisha orodha ya mechi zote katika mstari wa maandishi -
Njia
searchya modulire,
ambayo inatafuta mechi ya kwanza ya usemi wa kawaida katika mstari wa maandishi -
Njia
matchya modulire,
ambayo inatafuta mechi ya usemi wa kawaida mwanzoni mwa mstari wa maandishi -
Njia
fullmatchya modulire,
ambayo inatafuta mechi zote za usemi wa kawaida katika mstari wa maandishi -
Kitu
Match objectcha modulire,
ambacho kina habari kuhusu mechi za usemi wa kawaida -
Njia
splitya modulire,
ambayo inagawanya mstari wa maandishi kuwa orodha kulingana na kitenganishi maalum