Il metodo finditer nelle espressioni regolari di Python
Il metodo finditer è progettato per
ottenere un iteratore di tutte le corrispondenze
con l'espressione regolare nella stringa. Nel primo parametro
del metodo specifichiamo l'espressione regolare da
cercare, nel secondo parametro - la stringa
in cui cercare. Il metodo controlla tutte le corrispondenze,
cercandole da sinistra a destra. Il metodo restituisce
un iteratore di oggetti match. La sintassi
del metodo finditer è la seguente:
re.finditer(cosa cercare, dove cercare)
Troviamo tutte le sottostringhe con cifre nella nostra stringa:
txt = 'aaaa 123 bbbb 456'
print(re.finditer('\d+', txt))
Risultato dell'esecuzione del codice:
<callable_iterator object at 0x000002AA891300A0>
Ora dichiariamo una variabile res,
il cui valore sarà l'oggetto ottenuto
nel precedente esempio. 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, verranno stampati due oggetti match:
<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. È possibile estrarre le corrispondenze per indice:
for el in res:
print(el[0])
Risultato dell'esecuzione del codice:
'123'
'456'
Data la stringa:
txt = '12 aaa 34 bbb 56 ccc'
Estrarre da essa tutti i numeri utilizzando un ciclo.