Strumenti

L’importanza di saper cercare: le Regular Expressions.

Quando si deve effettuare una ricerca è necessa sapere come cercare e sapere tutti gli strumenti che ci vengono in aiuto. Fin dall’inizio è stato presente nella ricerca la distinzione tra maiuscole e minuscole, e anche parole intere o non. Ma da non molto si trova anche la ricerca con le Regular Expressions.

Le reguar expressions permettono di cercare (e non solo), cercando in modo meno pignolo e abbozzato.

Immaginando di dover cercare tutte le occorrenze della parola POTATO per poi, forse, modificarle con APPLE, ciò che si potrebbe pensare si fare in principio potrebbe essere cercare proprio POTATO, ma ci si accorgerebbe che sostituendo con APPLE, i plurali verrebbero sballati (POTATOES => APPLEES).

Si potrebbe pensare anche di cercare con lo spazio successivo, “POTATO ” e modificarlo con “APPLE “, ma ci sia accorgerebbe che se seguito da una punteggiatura (POTATO,) questo verrebbe ignorato.

Dunque bisognerebbe farlo in più passaggi, e questo potrebbe diventare un problema anche molto più complicato di questo.

In questo caso e molti altri, possono venirci in aiuto le Regular Expressions.

A chi possono servire?

Le regular expressions possono servire a chiunque abbia a che fare con il PC (eccetto chi fa grafica, video e suono).

Sono infatti utili non solo per i testi e file di testo, ma sono utili anche per interrogazioni di un certo livello su Database, sebbene ogni DB abbia la sua sintassi.

MySQL (dalla versione 3.23.4)SELECT nome, email
FROM utenti
WHERE REGEXP_LIKE(email, ‘esempio.(it|com|org)$’);
PostgreSQL (dalla versione 7.x)SELECT nome, email
FROM utenti
WHERE email ~* ‘esempio.(it|com|org)$’;
— * per ignorcase
Oracle (dalla versione 10g)SELECT nome, email
SELECT nome, email FROM utenti WHERE REGEXP_LIKE(email, ‘esempio\.(it|com|org)$’);

Cosa sono le Regular Expressions

Le Regular expression sono stringhe di ricerca interpretate per permettere una ricerca meno fissa.
Immaginando di dover cercare una stringa contenente P seguito da una vocale e poi ZZA, per cercare sia PAZZA, sia PEZZA, sia PIZZA, sia POZZA che PUZZA, aziché cercarlo cinque volte basterà cercare P(A|E|I|O|U)ZZA: questo troverà tutte le occorrenze di una qualunque tra queste parole in un sol colpo.

Cheat Sheet

Ancore
^Inizio della stringa o inizio della riga in uno schema multi-linea
$Fine della stringa o fine della riga in uno schema multi-riga
\bConfine di parola
\BNon confine di parola
Classi di carattere
\sSpazio bianco
\SNon spazio bianco
\dCifra (Digit)
\DNon cifra
\wParola
\WNon parola
Gruppi e intervalli (gli intervalli sono inclusivi)
.Qualsiasi carattere eccetto nuova riga (\n)
(a|b)Oppure (a o b)
[abc]Tra (a o b o c)
[^abc]Non tra (non a o b o c)
[a-q]Nell’intervallo (lettera minuscola tra a e q)
[A-Q]Nell’intervallo (lettera maiuscola tra A e Q)
[0-7]Nell’intervallo (cifra tra 0 e 7)
Quantificatori
*0 o più ripetizioni
+1 o più ripetizioni
?0 o 1 ripetizioni
{3}Esattamente 3 ripetizioni
{3,}3 o più ripetizioni
{3,5}da 3 a 5 ripetizioni
Sequenze di escape e caratteri speciali
\Escape del carattere seguente
\QInizia la sequenza letterale
\EFine sequenza letterale
\nNuova linea
\rRitorno ad inizio linea (usato nei sistemi Windows)
\tTab
Greedy / Lazy
<div>.*?</div>in <div>primo</div><div>secondo</div> prende <div>primo</div>
<div>.*</div>in <div>primo</div><div>secondo</div> prende <div>primo</div><div>secondo</div> ed è così di default

Per ulteriori informazioni è disponibile un Regular Expressions Cheat Sheet oltre la guida Regular expressions che trovate nei bookmarks.

Lascia un commento