4.2.5 Gli oggetti di tipo Match (NdT: corrispondenza)

Le istanze MatchObject supportano i seguenti metodi e attributi:

expand( template)
Restituisce la stringa ottenuta effettuando le sostituzioni di backslash sulla stringa di maschera template, come fatto dal metodo sub(). Gli escape come "\n" vengono convertiti nei caratteri appropriati, e i backreference numerici ("\1", "\2") e nominali ("\g<1>", "\g<nome>") vengono sostituiti dal contenuto dei rispettivi gruppi.

group( [group1, ...])
Restituisce uno o più sotto gruppi della corrispondenza. Se viene passato un solo argomento, il risultato è una stringa singola; se gli argomenti sono molteplici, il risultato è una tupla con un termine per argomento. Senza argomenti, il valore predefinito di group1 è zero (l'intera corrispondenza viene restituita). Se un argomento groupN è zero, il valore corrispondente restituito è l'intera stringa corrispondente; se è compreso nell'intervallo [1..99], è la stringa corrispondente al gruppo indicato tra parentesi. Se il numero di un gruppo è negativo o maggiore del numero dei gruppi definito nel modello, viene sollevata un'eccezione IndexError. Se un gruppo viene contenuto in una parte del modello che non corrisponde, il risultato è None. Se un gruppo viene contenuto in una parte del modello che corrisponde molteplici volte, viene restituita l'ultima corrispondenza.

Se l'espressione regolare usa la sintassi (?P<name>...), l'argomento groupN può anche essere una stringa che identifica il gruppo in base al suo nome. Se un argomento di tipo stringa non viene usato come nome di gruppo nel modello, viene sollevata un'eccezione di tipo IndexError.

Un esempio moderatamente complicato:

m = re.match(r"(?P<int>\d+)\.(\d*)", '3.14')

dopo la corrispondenza, m.group(1) è '3', come lo è m.group('int'), e m.group(2) è '14'.

groups( [default])
Restituisce una tupla contenente tutti i sotto gruppi della corrispondenza, da 1 fino all'ultimo gruppo presente nel modello, indipendentemente dal loro numero. Il parametro default viene usato per i gruppi che non partecipano alla corrispondenza; il valore predefinito è None. (Note di imcompatibilità: nella versione originale di Python 1.5, se la tupla fosse stata costituita da un solo elemento, sarebbe stata restituita una stringa. In questi casi, dalle versioni successive (dalla 1.5.1 in su), viene restituita una tupla di un solo elemento.)

groupdict( [default])
Restituisce un dizionario contenente tutti i sotto gruppi nominati della corrispondenza, indicizzati dal nome del sotto gruppo. L'argomento default viene utilizzato per i gruppi che non partecipano alla corrispondenza; il valore predefinito è None.

start( [group])
end( [group])
Restituisce l'indice dell'inizio e della fine della sotto stringa corrispondente al group; il valore predefinito di group è zero (ad indicare l'intera sotto stringa). Restituisce -1 se il group esiste, ma non contribuisce alla corrispondenza. Per un oggetto di corrispondenza m ed un gruppo g che ha contribuito alla corrispondenza, la sotto stringa ha corrisposto tramite il gruppo g (equivalente a m.group(g)) è:

m.string[m.start(g):m.end(g)]

Notate che m.start(group) uguaglierà m.end(group) se il gruppo group corrisponde ad una stringa epsilon (la stringa vuota). Per esempio, dopo m = re.search('b(c?)', 'cba'), m.start(0) è 1, m.end(0) è 2, m.start(1) ed m.end(1) sono entrambi 2, e m.start(2) solleva un'eccezione di tipo IndexError.

span( [group])
Per un MatchObject m, restituisce la tupla di 2 elementi (m.start(group), m.end(group)). Notate che se il gruppo non contribuisce alla corrispondenza, questa è (-1, -1). Ancora, il valore predefinito di group è zero.

pos
Il valore di pos passato a uno dei metodi search() o match() del RegexObject. Questo è l'indice nella stringa in cui l'automa dell'espressione regolare inizia a cercare.

endpos
Il valore di endpos passato ai metodi search() o match() del RegexObject. Questi è l'indice nella stringa oltre il quale l'automa dell'espressione regolare non andrà a cercare una corrispondenza.

lastindex
L'indice intero dell'ultimo gruppo che ha effettuato una corrisponcenza, o None se nessun gruppo ha trovato corrispondenza. Per esempio, le espressioni (a)b, ((a)(b)) e ((ab)) hanno lastindex == 1 se applicati alla stringa 'ab', mentre l'espressione (a)(b) avrà lastindex == 2, se applicata alla stessa stringa.

lastgroup
Il nome dell'ultimo gruppo che ha effettuato una corrispondenza, o None se il gruppo non ha un nome, o se nessun gruppo ha trovato corrispondenza.

re
L'oggetto corrispondente all'espressione regolare che ha prodotto, attraverso i metodi match() o search(), questa istanza di MatchObject.

string
La stringa passata a match() o search().

Vedete Circa questo documento... per informazioni su modifiche e suggerimenti.