Il metodo finditer del modulo re
Il metodo finditer del modulo re
restituisce un iteratore di tutte le corrispondenze con l'espressione regolare
in una stringa. Nel primo parametro del metodo specifichiamo
l'espressione regolare. Nel secondo parametro impostiamo
la stringa in cui cerchiamo l'espressione regolare. Nel terzo
parametro opzionale possiamo impostare le flag.
Il metodo controlla tutte le corrispondenze, cercandole
da sinistra a destra.
Sintassi
import re
re.finditer(espressione_regolare, stringa, [flag])
Esempio
Troviamo tutte le sottostringhe con cifre nella nostra stringa:
txt = 'aaaa 123 bbbb 456'
res = re.finditer('\d+', txt)
print(res)
Risultato dell'esecuzione del codice:
<callable_iterator object at 0x000002AA891300A0>
Esempio
Ora dichiariamo la variabile res,
il cui valore sarà l'oggetto ottenuto
da noi nell'esempio precedente. Poi iteriamolo
con un ciclo:
txt = 'aaaa 123 bbbb 456'
res = re.finditer('\d+', txt)
for el in res:
print(el)
Dopo l'esecuzione del codice otterremo due oggetti Match object:
<re.Match object; span=(5, 8), match='123'>
<re.Match object; span=(14, 17), match='456'>
Questi oggetti contengono informazioni su tutte le corrispondenze con l'espressione regolare sotto forma di tupla. Possiamo estrarne le corrispondenze per indice:
for el in res:
print(el[0])
Risultato dell'esecuzione del codice:
'123'
'456'
Esempio
Per maggiore chiarezza, durante la ricerca delle corrispondenze utilizziamo i gruppi di cattura. E durante l'iterazione degli oggetti con il ciclo stampiamo la prima corrispondenza (sarà considerata il gruppo zero), e anche i suoi elementi, a loro volta suddivisi in gruppi:
txt = 'aaaa 123 bbbb 456'
res = re.finditer('(\d)(\d)', txt)
for el in res:
print(el[0], el[1], el[2])
Dopo l'esecuzione del codice otterremo il gruppo zero, cioè l'intera sottostringa, e anche il primo e il secondo carattere di questa sottostringa:
'12' '1' '2'
'45' '4' '5'
Vedi anche
-
il metodo
findalldel modulore,
che restituisce una lista di tutte le corrispondenze in una stringa -
il metodo
searchdel modulore,
che cerca la prima corrispondenza con l'espressione regolare in una stringa -
il metodo
matchdel modulore,
che cerca una corrispondenza con l'espressione regolare all'inizio della stringa -
il metodo
fullmatchdel modulore,
che cerca tutte le corrispondenze con l'espressione regolare in una stringa -
l'oggetto
Match objectdel modulore,
che contiene informazioni sulle corrispondenze con l'espressione regolare -
il metodo
splitdel modulore,
che divide una stringa in una lista in base al separatore specificato