Le espressioni regolari in Unix

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à:

  1. 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.
  2. ab corrisponde alla concatenazione delle espressioni a e b;
  3. 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:

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *