|
Ecco l'articolo pronto per la pubblicazione sul tuo sito.
Le espressioni regolari (Regex): una guida pratica con
esempi
Introduzione
Le espressioni regolari, spesso chiamate
semplicemente Regex (Regular Expressions),
rappresentano uno strumento potentissimo per cercare,
verificare e manipolare testi.
Grazie alle Regex è possibile:
✅ verificare indirizzi email
✅ controllare numeri di telefono
✅ cercare parole specifiche
✅ sostituire parti di testo
✅ validare dati inseriti dall'utente
Oggi praticamente tutti i linguaggi di programmazione
supportano le espressioni regolari.
🔍 Schema generale
Testo
│
▼
Regex
│
▼
Risultato
Cos'è una Regex?
Una Regex è una sequenza di caratteri speciali che
definisce un modello di ricerca.
Ad esempio:
abc
cerca semplicemente la sequenza di caratteri:
abc
all'interno di un testo.
Esempio:
Il linguaggio abc è interessante.
La ricerca avrà esito positivo.
💡 Suggerimento
+----------------------------------------+
| SUGGERIMENTO |
+----------------------------------------+
| Inizia con espressioni semplici e |
| aggiungi gradualmente i caratteri |
| speciali. Le Regex complesse possono |
| diventare difficili da leggere. |
+----------------------------------------+
Il carattere punto (.)
Uno dei caratteri speciali più utilizzati è il punto.
.
Significa:
Qualsiasi carattere singolo.
Esempio:
c.t
corrisponde a:
cat
cot
cut
c8t
ma non a:
ct
cart
🔎 Visualizzazione
c . t
│ │ │
│ │ └─ t finale
│ └── qualsiasi carattere
└──── c iniziale
Le parentesi quadre
Permettono di indicare un insieme di caratteri validi.
Regex:
[abc]
Significa:
a oppure b oppure c
Esempi validi:
a
b
c
Intervalli di caratteri
È possibile specificare intervalli.
Regex:
[a-z]
corrisponde a tutte le lettere minuscole.
Regex:
[A-Z]
corrisponde a tutte le lettere maiuscole.
Regex:
[0-9]
corrisponde a qualsiasi cifra.
📌 Alcuni esempi:
[0-9][0-9]
ricerca numeri composti da due cifre:
12
45
99
🔍 Lo sapevi che?
+----------------------------------------+
| LO SAPEVI CHE? |
+----------------------------------------+
| Le Regex sono nate negli anni '50 |
| nell'ambito degli studi matematici |
| sugli automi e sui linguaggi formali. |
+----------------------------------------+
Il simbolo *
L'asterisco indica:
Zero o più occorrenze.
Regex:
ab*
corrisponde a:
a
ab
abb
abbb
abbbb
Il simbolo +
Il simbolo più indica:
Una o più occorrenze.
Regex:
ab+
corrisponde a:
ab
abb
abbb
ma NON a:
a
Il simbolo ?
Il punto interrogativo indica:
Zero oppure una occorrenza.
Regex:
colou?r
corrisponde sia a:
color
sia a:
colour
Inizio e fine stringa
Per verificare l'intero contenuto di una stringa si
utilizzano:
^
inizio stringa
e
$
fine stringa
Esempio:
^ciao$
accetta soltanto:
ciao
e non:
ciao mondo
oppure
mondo ciao
Verificare un numero di telefono
Regex:
^[0-9]{10}$
Significa:
^ inizio stringa
[0-9] cifra
{10} esattamente 10 volte
$ fine stringa
Esempio valido:
3331234567
Verificare un CAP italiano
Regex:
^[0-9]{5}$
Esempi validi:
40100
00100
20100
⚠️ Attenzione
+----------------------------------------+
| ATTENZIONE |
+----------------------------------------+
| Una Regex può verificare la forma |
| di un dato ma non la sua validità |
| reale. |
| |
| Ad esempio 99999 è formalmente un CAP |
| corretto ma potrebbe non esistere. |
+----------------------------------------+
Verificare un indirizzo email
Una Regex semplice può essere:
^[A-Za-z0-9._%+-]+@
[A-Za-z0-9.-]+\.
[A-Za-z]{2,}$
Esempi validi:
mario@email.it
info@sito.com
utente123@gmail.com
📧 Schema
nomeutente@dominio.estensione
Utilizzare le Regex in Pascal
In Lazarus e Free Pascal è possibile utilizzare la classe
TRegExpr.
Esempio:
uses
RegExpr;
var
Regex: TRegExpr;
begin
Regex := TRegExpr.Create;
{ Imposta il modello di ricerca }
Regex.Expression := '^[0-9]+$';
{ Verifica se il testo contiene
soltanto numeri }
if Regex.Exec('12345') then
WriteLn('Numero valido')
else
WriteLn('Numero non valido');
Regex.Free;
end.
Output:
Numero valido
Cercare una parola in un testo
Esempio:
uses
RegExpr;
var
Regex: TRegExpr;
begin
Regex := TRegExpr.Create;
{ Cerca la parola Pascal }
Regex.Expression := 'Pascal';
if Regex.Exec(
'Sto studiando Pascal') then
WriteLn('Trovata');
Regex.Free;
end.
Output:
Trovata
💡 Suggerimento
+----------------------------------------+
| SUGGERIMENTO |
+----------------------------------------+
| Quando sviluppi applicazioni con |
| Lazarus, le Regex sono molto utili |
| per controllare i dati inseriti dagli |
| utenti prima di salvarli nel database. |
+----------------------------------------+
Sostituire testo con le Regex
Le Regex possono essere utilizzate anche per sostituire
parti di testo.
Esempio:
Testo originale:
Mario Rossi
Regex:
Rossi
Sostituzione:
Bianchi
Risultato:
Mario Bianchi
🔄 Schema
Testo
│
▼
Regex
│
▼
Sostituzione
│
▼
Nuovo testo
Vantaggi delle Regex
Le espressioni regolari permettono di:
✔ effettuare ricerche avanzate
✔ validare dati
✔ sostituire testo automaticamente
✔ ridurre il codice necessario
✔ migliorare la qualità delle applicazioni
🔍 Lo sapevi che?
+----------------------------------------+
| LO SAPEVI CHE? |
+----------------------------------------+
| Gli editor moderni come VS Code, |
| Notepad++ e molti IDE consentono |
| di effettuare ricerche e sostituzioni |
| utilizzando le Regex. |
+----------------------------------------+
Conclusione
Le espressioni regolari sono uno strumento estremamente
potente che ogni programmatore dovrebbe conoscere. Sebbene
all'inizio possano sembrare complicate, con un po' di
pratica diventano indispensabili per la gestione dei testi,
la validazione dei dati e l'automazione di numerose
operazioni.
Se utilizzi Pascal e Lazarus, imparare a usare le Regex
ti consentirà di realizzare applicazioni più robuste,
professionali e affidabili, riducendo notevolmente la
quantità di codice necessaria per controllare e manipolare
le informazioni.
Questo articolo è particolarmente interessante perché le
Regex sono un argomento molto ricercato e non spesso
trattato nei siti dedicati a Pascal e Lazarus.
|