top of page

ARGOMENTI

CHE COSA SONO LE REGEX?


regex

In italiano, le RegEx sono note come “espressioni regolari”, ma il termine inglese “RegEx”, abbreviazione di REGular EXpression (a volte indicato anche come regexp o RE), è più comune.

Fondamentalmente, una RegEx è una sequenza di simboli che consente di filtrare e identificare un pattern di ricerca, o più specificamente, una sequenza di caratteri che abilita una funzione per filtrare, confrontare o identificare stringhe di caratteri o codice.


L’uso delle RegEx può non essere immediatamente intuitivo, ma la loro complessità è direttamente proporzionale alla loro potenza.

La padronanza delle RegEx è una competenza trasversale che trova applicazioni in quasi tutti i settori per chi opera nel mondo del web (e oltre).


Per fare alcuni esempi:

  • nella SEO, in fase di migrazione (es. nel redirect 301), nei tool (es. Screaming Frog) e in azioni di web scraping;

  • nell'analisi dei dati e nella data visualization (es. su Search Console, Google Analytics, Data Studio, R, Clarity, abbinato a BigQuery) per estrazioni evolute e definizione di segmenti avanzati;

  • su Google Ads e in altre piattaforme pubblicitarie per filtri ed automazioni;

  • nello sviluppo per la validazione dei formati e l'elaborazione delle stringhe.


Le espressioni regolari sono utilizzate nei motori di ricerca, nelle finestre di dialogo di ricerca e sostituzione delle parole di Word ed altri editor di testo, troviamo svariate applicazioni anche nell’analisi lessicale.

Molti linguaggi di programmazione offrono funzionalità regex integrate o tramite librerie, poiché le situazioni di utilizzo sono varie.


Per comprendere cosa sono le RegEx, si può pensare alla funzione “trova” o “trova e sostituisci” su Word, che ricerca la stringa di caratteri esatta all’interno del documento e, se necessario, la sostituisce con un’altra stringa desiderata, o alla funzione di ricerca nei browser web (che si attiva di solito premendo i tasti CTRL+F).


L’evoluzione delle espressioni regolari

Sebbene la prima formulazione e formalizzazione delle espressioni regolari risalga agli anni '40, è solo nel decennio successivo che le regex hanno iniziato a guadagnare terreno, grazie al lavoro del matematico americano Stephen Cole Kleene, che ha descritto un linguaggio regolare, e successivamente di Ken Thompson, che le ha implementate nell’editor QED nel 1966, prima che diventassero di uso comune con gli strumenti di elaborazione del testo Unix.


Tuttavia, è negli anni '80 che, grazie al linguaggio di programmazione Perl che ne consentiva l’uso nativo, le espressioni regolari sono diventate comuni e da allora si sono sviluppate diverse sintassi per la scrittura di regex, come lo standard POSIX e la sintassi Perl.


Oggi le regex possono essere implementate in JavaScript, Python e altri linguaggi di programmazione, nonchè essere sfruttate tramite l'appoggio dell'AI diventando così uno strumento SEO versatile e potente.


A cosa servono le Regex

In base alle loro caratteristiche, le espressioni regolari aiutano a semplificare la ricerca di dati e informazioni comuni all’interno di un documento o di un insieme di risorse, definendo le regole che descrivono l’insieme di possibili stringhe che si desidera abbinare per scoprire i risultati di ricerca che, a prima vista, potrebbero sembrare non correlati.


Grazie a questo strumento, è possibile, ad esempio, includere stringhe di ricerca complesse, corrispondenze parziali e caratteri jolly, effettuare ricerche case-insensitive o impostare altre istruzioni avanzate, quasi come se fosse un linguaggio di programmazione inline per le ricerche di testo.


Come appare una Regex

La complessità di queste espressioni può intimorire chi non ha familiarità con questo linguaggio. Il più grande scoglio è probabilmente la sua forma, che a prima vista può sembrare complessa: tipicamente, infatti, un’espressione regolare include una combinazione di testo (che darà una corrispondenza esatta nei risultati della ricerca), insieme a vari operatori che agiscono più come caratteri jolly per cercare una corrispondenza del pattern.











In termini pratici, come illustra Dan Taylor in un articolo interessante, una RegEx può includere un singolo carattere wildcard, una corrispondenza per uno o più caratteri o una corrispondenza per zero o più caratteri, oltre a caratteri opzionali, sottoespressioni nidificate tra parentesi e funzioni varie.

Combinando queste diverse operazioni, è possibile costruire un’espressione complessa che consente di ottenere risultati di ampia portata, ma molto specifici.


Più precisamente, è possibile utilizzare le espressioni regolari per filtrare stringhe semplici, utilizzare singoli caratteri (il filtro più semplice, ricordando che un carattere è qualsiasi lettera, numero, simbolo e spazio), sfruttare i caratteri speciali e i metacaratteri (i caratteri che hanno un significato speciale), le ancore (che servono a indicare in quale posizione del testo eseguire l’analisi) e i modificatori (che espandono o restringono la porzione di testo da analizzare).


Gli operatori comuni delle espressioni regolari

Alcuni esempi di operatori regex comuni includono:


. (punto) è un carattere jolly, può quindi rappresentare ogni singolo carattere

* (asterisco) seleziona una corrispondenza per zero o più elementi.

+ (segno più) seleziona una corrispondenza per uno o più elementi.

? (segno interrogativo) rende il carattere precedente una parte facoltativa dell’espressione

digit o d imposta una corrispondenza per ogni singola cifra numerica 0-9

| (pipe, linea verticale) indica una funzione di opposizione (OR).

^ (accento circonflesso) si usa per denotare l’inizio di una stringa.

$ (simbolo del dollaro) serve a denotare la fine di una stringa.

( ) (parentesi tonde) servono per annidare una sottoespressione.


Alcuni linguaggi di programmazione, come JavaScript, consentono anche l’inclusione di flags dopo il pattern regex stesso, che possono influenzare ulteriormente il risultato, come ad esempio:


g restituisce tutte le corrispondenze anziché solo la prima.

i restituisce risultati senza distinzione tra maiuscole e minuscole.

m attiva la modalità multilinea.

s attiva la modalità “tutti”.

u attiva il pieno supporto Unicode.

y cerca la posizione del testo specifica (modalità “sticky”‘).


L’uso combinato di questi operatori e flag permette di creare un linguaggio logico complesso e offre la possibilità di ottenere risultati molto specifici su set di dati di grandi dimensioni e non ordinati.


Va inoltre ricordato che, a seconda del linguaggio di programmazione che stiamo utilizzando, il motore che fa funzionare le espressioni regolari può cambiare, e questo influisce sul modo in cui i comandi principali (che restano identici) vengono applicati.

POST RECENTI

bottom of page