Regular Expressions
Gruppi di cattura con nome
Ricerca…
Sintassi
Costruisci un gruppo di cattura con nome (
X
è il modello che vuoi catturare):(? 'name'X) (? X) (? PX)
Fare riferimento a un gruppo di acquisizione denominato:
$ {nome} \ {nome} g \ {nome}
Osservazioni
Python e Java non consentono a più gruppi di usare lo stesso nome.
Come si presenta un gruppo di cattura con nome
Dati gli aromi, il gruppo di cattura denominato potrebbe essere simile al seguente:
(?'name'X)
(?<name>X)
(?P<name>X)
Con X
è il modello che vuoi catturare. Consideriamo la seguente stringa:
C'era una volta una ragazza carina ...
C'era una volta un unicorno con un cappello ...
C'era una volta una barca con una bandiera pirata ...
In cui voglio catturare il soggetto (in corsivo) di ogni riga. Userò la seguente espressione .* was a (?<subject>[\w ]+)[.]{3}
.
Il risultato della corrispondenza terrà:
MATCH 1
subject [29-47] `pretty little girl`
MATCH 2
subject [80-99] `unicorn with an hat`
MATCH 3
subject [132-155] `boat with a pirate flag`
Fai riferimento a un gruppo di cattura con nome
Come puoi (o non) sapere, puoi fare riferimento a un gruppo di cattura con:
$1
1
è il numero del gruppo.
Allo stesso modo, puoi fare riferimento a un gruppo di acquisizione con:
${name}
\{name}
g\{name}
Prendiamo l'esempio precedente e sostituiamo le corrispondenze con
The hero of the story is a ${subject}.
Il risultato che otterremo è:
The hero of the story is a pretty little girl.
The hero of the story is a unicorn with an hat.
The hero of the story is a boat with a pirate flag.