Groovy - Espressioni regolari
Un'espressione regolare è un modello utilizzato per trovare sottostringhe nel testo. Groovy supporta le espressioni regolari in modo nativo utilizzando l'espressione ~ "regex". Il testo racchiuso tra le virgolette rappresenta l'espressione di confronto.
Ad esempio, possiamo creare un oggetto espressione regolare come mostrato di seguito:
def regex = ~'Groovy'
Quando l'operatore Groovy = ~ appare come predicato (espressione che restituisce un booleano) in if e while(vedere il Capitolo 8), l'operando String a sinistra viene confrontato con l'operando delle espressioni regolari a destra. Quindi, ciascuna delle seguenti opzioni fornisce il valore true.
Quando si definisce un'espressione regolare, è possibile utilizzare i seguenti caratteri speciali:
Sono disponibili due caratteri posizionali speciali utilizzati per indicare l'inizio e la fine di una riga: caret (∧) e simbolo del dollaro ($).
Le espressioni regolari possono includere anche quantificatori. Il segno più (+) rappresenta una o più volte, applicato all'elemento precedente dell'espressione. L'asterisco (*) viene utilizzato per rappresentare zero o più occorrenze. Il punto interrogativo (?) Indica zero o una volta.
Il metacarattere {e} viene utilizzato per abbinare un numero specifico di istanze del carattere precedente.
In un'espressione regolare, il simbolo del punto (.) Può rappresentare qualsiasi carattere. Questo è descritto come il carattere jolly.
Un'espressione regolare può includere classi di caratteri. Un insieme di caratteri può essere dato come una semplice sequenza di caratteri racchiusi nei metacaratteri [e] come in [aeiou]. Per intervalli di lettere o numeri, è possibile utilizzare un separatore trattino come in [a – z] o [a – mA – M]. Il complemento di una classe di caratteri è indicato da un accento circonflesso all'interno delle racchette quadrate come in [∧a – z] e rappresenta tutti i caratteri diversi da quelli specificati. Di seguito vengono forniti alcuni esempi di espressioni regolari
'Groovy' =~ 'Groovy'
'Groovy' =~ 'oo'
'Groovy' ==~ 'Groovy'
'Groovy' ==~ 'oo'
'Groovy' =~ '∧G'
‘Groovy' =~ 'G$'
‘Groovy' =~ 'Gro*vy' 'Groovy' =~ 'Gro{2}vy'