Regex
Nell'informatica Regex è la contrazione di Regular Expression ( espressione regolare ). È una sequenza di comandi che consentono di trovare le parti di un testo che rispondono a determinate caratteristiche. Ad esempio, cercare le parole in maiuscolo e trasformarle in minuscolo.
La storia della regex. Le regular expressions sono create in ambito matematico nel 1950 da Stephen Kleene per studiare gli insiemi regolari. Sono poi applicate in campo informatico da Ken Thompson negli anni '60 nello sviluppo dell'editor QED.
Le espressioni regolari sono usate in tutti i sistemi operativi ( Unix, Windows, Linux, ecc. ) e da tutti i linguaggi di programmazione ( PHP, Java, Javascript, Visual Basic, ecc. ).
Un esempio di espressione regolare
La seguente espressione regolare trova l'articolo "la" nel testo.
\bla\b
E' molto diffusa la pratica delle espressioni regolari nella programmazione informatica.
La precedente stringa è composta dai caratteri speciali \b che individuano i bordi della parola "la".
Per questa ragione non viene selezionata la sequenza di lettere dentro la parola "nella".
Elenco dei comandi del regex
In questa lista sono elencati i principali caratteri speciali e comandi per scrivere un'espressione regolare.
\b | è il simbolo usato per rappresentare il bordo iniziale o finale di una parola
\bcasa\b seleziona la parola "casa" nel testo, non seleziona "casato". |
|
\d | una cifra qualsiasi tra 0,1,2,4,5,6,7,8,9
\d\d\d\d seleziona i numeri con almeno quattro cifre ( es. 2018 ). |
|
\r | il simbolo del ritorno a capo | |
\s | è il simbolo di uno spazio
\scasa seleziona la parola "casa", "casato", "casata", ecc. |
|
\t | il simbolo della tabulazione orizzontale | |
\w | un carattere dentro una parola
c\w\wa seleziona la parola "casa" , "cina" , "cosa", ecc. |
|
[] | uno tra il gruppo dei caratteri compresi tra le parentesi quadre
[cC]asa seleziona le parole "Casa" e "casa". |
|
[-] | il trattino separa il carattere iniziale e finale di un gruppo
\b[a-m]\b seleziona le parole "auto", "casa", "mare", ecc. perché iniziano con una lettera compresa tra a-m ma non "pepe" o "uva" perché iniziano con altre lettere dopo m. |
|
[^] | questo operatore esclude il carattere che segue da un gruppo
\b[a-z^t]\b seleziona le parole "casa", "fiori", ecc. perché iniziano con una lettera compresa tra a-z ma non "tavolo" o "televisione" perché iniziano per t. |
|
. | seleziona qualsiasi carattere
\b....\b seleziona la parole di quattro lettere come "casa", "aula", "vaso", ecc.. |
|
^ | l'inizio di una riga | |
$ | la fine di una riga | |
| | l'operatore OR | |
\ | il simbolo escape annulla il metacarattere successivo per considerarlo come un carattere normale
\bcasa\. seleziona la parole "casa.", considerando il punto come simbolo della punteggiatura e non come carattere speciale. |
|
* | seleziona zero o più occorrenze | |
+ | seleziona una o più occorrenze | |
? | seleziona una o zero occorrenze | |
{n} | seleziona n occorrenze | |
{n,} | seleziona n o più occorrenze | |
{n,m} | seleziona da n a m occorrenze | |
() | seleziona un gruppo di caratteri in sequenza | |
\A | il simbolo dell'inizio del testo | |
\B | qualsiasi carattere tranne i bordi delle parole | |
\D | qualsiasi carattere tranne le cifre numeriche | |
\S | qualsiasi carattere tranne lo spazio | |
\T | il simbolo della tabulazione verticale | |
\W | qualsiasi carattere tranne quelli dentro una parola | |
\Z | il simbolo della fine del testo |