Espressioni Regolari
Un'espressione regolare è una sequenza speciale di caratteri che consente di trovare o abbinare altre stringhe o serie di stringhe, utilizzando una sintassi specializzata contenuta in uno schema.
Esempi di espressioni regolari (Regex)
Un semplice esempio di espressione regolare è una stringa (letterale). Ad esempio, la regex Hello World corrisponde alla stringa "Hello World". . (punto) è un altro esempio di espressione regolare. Un punto corrisponde a qualsiasi singolo carattere; corrisponderebbe, ad esempio, a "a" o "1".
Le tabelle seguenti elencano diverse espressioni regolari e descrivono il pattern a cui corrispondono.
Regex | Matches |
---|---|
this is text |
Corrisponde esattamente a "this is text" |
this\s+is\s+text |
Corrisponde alla parola "this" seguita da uno o più spazi bianchi, seguita dalla parola "is", seguita da uno o più spazi bianchi, seguita dalla parola "text" |
^\d+(\.\d+)? |
^ indica che il pattern deve iniziare all'inizio di una nuova riga. \d+ corrisponde a una o più cifre. Il ? rende la parte tra parentesi opzionale. \. corrisponde a un punto. Le parentesi sono usate per il raggruppamento. Corrisponde per esempio a "5", "1.5" e "2.21". |
Simboli corrispondenti comuni
Espressione Regolare | Descrizione |
---|---|
|
Corrisponde a qualsiasi carattere. |
|
Trova regex che deve corrispondere all'inizio della riga. |
|
Trova regex che deve corrispondere alla fine della riga. |
|
Definizione di insieme: può corrispondere alla lettera a, b o c |
|
Definizione di insieme: può corrispondere a a, b o c, seguita da v o z |
|
Quando il simbolo ^ è il primo carattere tra parentesi quadre, nega il pattern. Corrisponde a qualsiasi carattere eccetto a, b o c |
|
Intervalli: corrisponde a una lettera tra a e d e a cifre tra 1 e 7, ma non a d1 |
|
Trova X oppure Z |
|
Trova X seguita direttamente da Z |
|
Verifica se segue la fine di una riga |
Meta-caratteri
I seguenti metacaratteri hanno un significato predefinito e rendono più semplici da usare alcuni schemi comuni, ad esempio, \d invece di [0..9].
Espressione Regolare | Descrizione |
---|---|
|
Una cifra numerica, abbreviazione per |
|
Un carattere non numerico, abbreviazione per |
|
Un carattere di spazio bianco (whitespace), abbreviazione per |
|
Un carattere non di spazio bianco (non-whitespace), abbreviazione |
|
Un carattere alfanumerico, abbreviazione per |
|
Un carattere non alfanumerico, abbreviazione per |
|
Uno o più caratteri non di spazio bianco |
|
Corrisponde a un confine di parola, dove un carattere di parole è |
Questi metacaratteri hanno la stessa lettera iniziale del concetto che rappresentano, ad esempio: cifra (digit), spazio (space), parola (word) e confine (boundary). I simboli maiuscoli indicano l'opposto. |
Quantificatore
Un quantificatore definisce la frequenza con cui un elemento può presentarsi. I simboli ?, *, + e {} definiscono la quantità delle espressioni regolari.
Espressione Regolare | Descrizione | Esempi |
---|---|---|
|
Si verifica zero o più volte, * abbreviazione per |
|
|
Si verifica una o più volte + abbreviazione per |
|
|
Si verifica zero o una volta, |
|
|
Si verifica X volte, le |
|
|
Si verifica tra X e Y volte |
|
|
|
|
Sguardo negativo al futuro
Il look ahead negativo offre la possibilità di escludere un pattern. In questo modo si può affermare che una stringa non deve essere seguita da un'altra stringa. Il look ahead negativo è definito tramite (?!pattern). Ad esempio, il seguente codice corrisponderà ad "a" se "a" non è seguito da "b": a(?!b)
Specificare le modalità all'interno dell'espressione regolare
È possibile aggiungere i modificatori di modalità all'inizio dell'espressione regolare. Per specificare più modalità, è sufficiente unirle, come in (?ismx).
- (?i) rende l'espressione regolare insensibile alle maiuscole e alle minuscole.
- (?s) per "modalità riga singola" fa sì che il punto corrisponda a tutti i caratteri, comprese le interruzioni di riga.
- (?m) per "modalità multi-riga" fa sì che il cursore e il dollaro corrispondano all'inizio e alla fine di ogni riga nella stringa oggetto.
Backslash
La backslash \ è un carattere di escape. Ciò significa che la barra rovesciata ha un significato predefinito. È necessario utilizzare la doppia backslash \\ per definire una singola backslash.