Le espressioni regolari vengono utilizzare per verificare se una stringa data in ingresso corrisponde alle proprietà indicate
Una espressione regolare è un pattern che descrive un insieme di stringhe. L’elemento atomico delle espressioni regolari è il carattere che gode delle seguenti proprietà:
- Un carattere è una espressione regolare che descrive se stesso;
- L’espressione “a” descrive “l’insieme di stringhe {a}”.
Non tutti i caratteri sono “espressioni regolari”, inoltre i metacaratteri sono degli operatori e per utilizzare il loro valore devono essere preceduti dal carattere di escape “\“.
Un’espressione regolare può essere composta da diversi simboli:
- . indica qualunque carattere;
- exp* indica zero o più occorrenze dell’espressione exp;
- ^exp serve per individuare gli elementi con exp all’inizio della riga;
- exp$ serve per individuare gli elementi con exp alla fine della riga;
- [a-z] qualsiasi carattere nell’intervallo specificato;
- [^a-z] qualsiasi carattere al di fuori dell’intervallo specificato;
- [aqwe] qualsiasi carattere nell’insieme specificato.
Esistono ulteriori opzioni:
- \<exp consente di trovare le righe con exp all’inizio di una parola;
- exp\> consente di trovare le righe con exp alla fine di una parola;
- exp{N} consente di trovare le righe con exp che compare esattamente N volte;
- exp{N,} consente di trovare le righe con exp che compare almeno N volte;
- exp{N,M} consente di trovare le righe con exp compare tra le N e le M volte;
- [[:CLASS:]] indica un carattere nella classe CLASS (digit, upper, lower, ecc.);
- a*b consente di trovare le righe con zero o più a seguite da una b;
- a.*b consente di trovare le righe con una a prima di una b;
- \<[[:upper:]] consente di trovare le righe con una parola che inizia con lettera maiuscola;
- ^d consente di trovare le righe con la lettera d all’inizio della riga;
- ^a*$ consente di trovare le righe con una riga vuota o composta solo di a;
- ^a.*b$ consente di trovare le righe con una riga che inizia con a e finisce con b;
- \<.- consente di trovare le righe con una parola che ha un trattino al secondo posto.
Le espressioni regolari godono delle seguenti proprietà:
- La concatenazione di espressioni regolari è essa stessa un’espressione regolare:
-
- Le stringhe possono essere costruite dalla concatenazione di caratteri;
- Una stringa corrisponde ad una concatenazione di stringhe se è composta da due sottostringhe che corrispondono alle due espressioni regolari.
- ab corrisponde alla concatenazione delle espressioni a e b;
- Una stringa corrisponde ad ab se corrisponde con “a o con b.
Le espressioni regolari estese possono essere:
- exp+ consente di trovare le righe con una o più occorrenze di exp;
- exp? consente di trovare le righe con zero o una occorrenza di exp;
- exp1 | exp2 consente di trovare le righe con exp1 oppure exp2;
- (exp) consente di dare una priorità sulle valutazione da effettuare.
Nelle espressioni regolari di base per utilizzare alcuni caratteri bisogna farli precedere dal carattere di escape \ sono: ?, +, {, |, (, e ).
Ecco l’indice degli articoli sui comandi Unix: