Le regular expressions con MySQL

MySQL
di Risorse.net

MySQL supporta l'utilizzo delle Regular Expressions (o espressioni regolari) all'interno delle query.

Per utilizzarle, un esempio di sintassi può essere la seguente:

SELECT * FROM nomeTabella WHERE nomeCampo REGEXP "pattern";

Il pattern include le istruzioni per verificare la regular expression. Sono tanti i caratteri speciali ammessi nell'espressione regolare. Partiamo da un esempio pratico per analizzarli tutti. Ammettiamo di voler cercare tutti quei campi i cui valori iniziano con la lettera "r" e finiscano con la lettera "o". Faremo:

SELECT * FROM nomeTabella WHERE nomeCampo REGEXP "^r.+o$";

Vediamo cosa significano i simboli usati nella query appena vista: In questo modo, i risultati precedenti comprenderanno valori come: Ma non stringhe tipo "ro". Perché tra il carattere "r" e "o" ci dovrà essere almeno un altro carattere. Neppure termini come "alrogo" o "arrotare" sarebbero accettati, perché la stringa dovrà iniziare con "r" e finire con "o".

Altri caratteri speciali
Le regular expressions con MySQL supportano comunque altri caratteri speciali. Vediamoli tutti, anche quelli appena analizzati, qui di seguito: Vediamo qualche esempio pratico:

SELECT "prova" REGEXP "[a-z]";

Restituisce 1 (vero).

SELECT "02800111222" REGEXP "^[0-9]{1,}[0-9]$";

Restituisce 1, ma anche:

SELECT "02800111222" REGEXP "^[0-9]+[0-9]$";

Restituisce 1. Il simbolo + infatti, significa presente una o più volte. I simboli {1,} significano appunto presente almeno 1 (una) volta, e il massimo di volte non è indicato (quindi una o più volte).

© Risorse.net (www.risorse.net)
pagina in versione stampabile:
http://www.risorse.net /mysql/regexp.asp?print=ok