Match Object
Il Match Object rappresenta un oggetto con
informazioni sulle corrispondenze con una espressione regolare
in una stringa. Il Match Object può essere ottenuto
applicando i seguenti metodi: fullmatch,
match,
search.
È possibile estrarre informazioni dal match object utilizzando i metodi principali.
Metodi principali applicati al match object
| Metodo | Scopo |
|---|---|
group |
Restituisce il gruppo zero. |
groups |
Restituisce una tupla di gruppi. |
groupdict |
Restituisce un dizionario dei gruppi nominati. |
span |
Restituisce il primo e l'ultimo indice della tupla di un singolo gruppo. |
start |
Restituisce il primo indice della tupla di un singolo gruppo. |
end |
Restituisce l'ultimo indice della tupla di un singolo gruppo. |
Esempio . Match Object senza metodo
Applichiamo il metodo match alla nostra
stringa:
txt = '123 456 789'
res = re.match('\d+', txt)
print(res)
Risultato dell'esecuzione del codice:
<re.Match object; span=(0, 3), match='123'>
Esempio . Metodo group
Ora visualizziamo il gruppo zero
dal Match Object utilizzando il metodo group:
txt = '123 456 789'
res = re.match('\d+', txt)
print(res.group())
Risultato dell'esecuzione del codice:
'123'
Esempio . Metodo groups
Applichiamo il metodo groups all'oggetto ottenuto
per visualizzare le tuple dei gruppi:
txt = '123 456 789'
res = re.match('(\d)(\d)', txt)
print(res.groups())
Risultato dell'esecuzione del codice:
('1', '2')
Esempio . Metodo groupdict
Per visualizzare il dizionario dei gruppi nominati
si può applicare il metodo groupdict:
res = re.match('(?P<test1>\d)(?P<test2>\d)', txt)
print(res.groupdict())
Risultato dell'esecuzione del codice:
{'test1': '1', 'test2': '2'}
Esempio . Metodo span
Visualizziamo la tupla del primo e
dell'ultimo indice di una singola tupla. Per
fare questo useremo il metodo span:
res = re.match('\d+', txt)
print(res.span())
Dopo l'esecuzione del codice vedrete una tupla, composta da due indici. Ma notate che l'ultimo valore è maggiore di uno rispetto all'indice finale:
(0, 3)
Esempio . Metodi start e end
Per restituire ciascuno degli indici
separatamente, si possono applicare i metodi start
e end:
res = re.match('\d+', txt)
print(res.start())
print(res.end())
Risultato dell'esecuzione del codice:
0
3