Moduulin re finditer-metodi
Moduulin re metodi finditer
palauttaa iteraattorin kaikista säännöllisen lausekkeen
osumista merkkijonossa. Metodin ensimmäisessä parametrissa määritellään
säännöllinen lauseke. Toisessa parametrissa asetetaan
merkkijono, josta etsitään. Kolmannessa
valinnaisessa parametrissa voidaan asettaa liput.
Metodi tarkistaa kaikki osumat, etsien niitä
vasemmalta oikealle.
Syntaksi
import re
re.finditer(säännöllinen_lauseke, merkkijono, [liput])
Esimerkki
Etsitään kaikki numerot sisältävät osajonot meidän merkkijonostamme:
txt = 'aaaa 123 bbbb 456'
res = re.finditer('\d+', txt)
print(res)
Koodin suorituksen tulos:
<callable_iterator object at 0x000002AA891300A0>
Esimerkki
Määritellään nyt muuttuja res,
jonka arvoksi tulee edellisessä esimerkissä saamamme
olio. Sitten käydään se läpi silmukalla:
txt = 'aaaa 123 bbbb 456'
res = re.finditer('\d+', txt)
for el in res:
print(el)
Koodin suorituksen jälkeen saamme kaksi Match-oliota:
<re.Match object; span=(5, 8), match='123'>
<re.Match object; span=(14, 17), match='456'>
Nämä oliot sisältävät tiedot kaikista säännöllisen lausekkeen osumista tuple-muodossa. Voimme tulostaa niistä osumat indeksin perusteella:
for el in res:
print(el[0])
Koodin suorituksen tulos:
'123'
'456'
Esimerkki
Selvyyden vuoksi käytetään osumien etsimisessä ryhmityksiä (capture groups). Ja silmukassa tulostetaan ensimmäinen osuminen (se katsotaan nollanneksi ryhmäksi), sekä sen alkiot, jotka on myös jaettu ryhmiin:
txt = 'aaaa 123 bbbb 456'
res = re.finditer('(\d)(\d)', txt)
for el in res:
print(el[0], el[1], el[2])
Koodin suorituksen jälkeen saamme nollannen ryhmän, eli koko osajonon, sekä ensimmäisen ja toisen merkin tästä osajonosta:
'12' '1' '2'
'45' '4' '5'
Katso myös
-
moduulin
remetodifindall,
joka palauttaa listan kaikista merkkijonon osumista -
moduulin
remetodisearch,
joka etsii ensimmäisen säännöllisen lausekkeen osuman merkkijonosta -
moduulin
remetodimatch,
joka etsii säännöllisen lausekkeen osuman merkkijonon alusta -
moduulin
remetodifullmatch,
joka etsii kaikki säännöllisen lausekkeen osumat merkkijonossa -
moduulin
reolioMatch object,
joka sisältää tietoja säännöllisen lausekkeen osumista -
moduulin
remetodisplit,
joka jakaa merkkijonon listaksi määritellyn erottimen mukaisesti