Uno strumento molto utile e potente ma spesso sottovalutato, o addirittura ignorato, da molti sviluppatori è rappresentato dalle “Espressioni Regolari”, in inglese Regex. Ma cosa sono di preciso? A cosa servono? E sopratutto, come si utilizzano? In questo articolo cercheremo di rispondere in maniera chiara a queste domande, con alcuni esempi pratici su come vengono applicate.

Cosa sono le espressioni regolari?

Le Regex sono un metodo utilizzato in molti linguaggi di programmazione (compresi PHP e Javascript) per controllare la corretta sintassi o per manipolare le stringhe. Per essere validate, queste vengono confrontate con uno o più modelli, detti pattern. Le Espressioni Regolari sono formate da vari elementi:

  • Sequenze di caratteri: una stringa che dev’essere interpretata nel suo significato letterale;
  • Metacaratteri: i caratteri la cui interpretazione va al di là del loro significato letterale;
  • Àncore: segnalano in quale posizione del testo l’espressione regolare deve eseguire la sua analisi;
  • Modificatori: espandono o restringono la porzione di testo che l’Espressione Regolare deve analizzare.

In base al linguaggio di programmazione che stiamo utilizzando, il motore che fa funzionare le espressioni regolari può cambiare. Questo non ha grosse ripercussioni per quanto riguarda i comandi principali, che sono identici in tutti i linguaggi, quanto per il modo in cui loro vengono applicati.

regex

I comandi

Vediamo insieme come creare la nostra espressione regolare per verificare una determinata stringa. Si devono utilizzare dei comandi ben precisi, ognuno dei quali ha una determinata funzione:

  • * (asterisco): effettua la ricerca, da zero a più volte, del carattere o insieme di caratteri che lo precede;
  • . (punto): verifica tutti i caratteri, escluso il ritorno a capo;
  • ^ (accento circonflesso): di norma, verifica l’inizio di una riga, ma se inserito all’interno di parentesi quadre nega il significato della serie di caratteri;
  • $ (dollaro): inserito alla fine di una Regex, verifica la fine di una riga;
  • [] (parentesi quadre): racchiudono al loro interno una serie di caratteri da verificare. In base al contenuto delle parentesi, la verifica viene fatta su diversi caratteri: ad esempio, [tfl] verifica esattamente i caratteri t, f e l, mentre [0-9] verifica qualsiasi cifra composta da un numero. Se vogliamo analizzare una cifra composta da due numeri, dovremmo utilizzare [0-9][0-9];
  • \ (backslash): rappresenta il carattere di escape per il carattere speciale, questo vuol dire che quel carattere verrà interpretato letteralmente;
  • \<…\> (parentesi acute” con escaping): indicano l’inizio e la fine di una determinata parola.

Redirect 301 con Regex

Le espressioni regolari ci aiutano anche in un ambito che può sembrare lontano da quello dell’analisi testuale, dunque in ottica SEO. Se abbiamo infatti bisogno, all’interno del nostro file .htaccess, di effettuare un redirect 301 dell’intero sito web dobbiamo utilizzare proprio una regex. Vediamo un esempio pratico:

RewriteEngine on

RewriteRule (.*) http://www.ilmionuovositoweb.it/$1 [R=301,L]