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'