Online Regex: compendio espressioni regolari con esempi per ogni caso

Foto dell'autore

Andrea Barbieri

 

Home > News feed > Competenze e tecnologie > Online Regex: compendio espressioni regolari con esempi per ogni caso

In questo compendio online elenchiamo le Regex utili con più casi d’uso possibili, sperando di mostrare degli esempi specifici che risolvano il problema di chi sta cercando proprio quella specifica Regex.

Una Regex è, fondamentalmente, una formula matematica che descrive un insieme di stringhe. Tale formula è costruita utilizzando una combinazione di metacaratteri, come \d (che rappresenta un numero) o \w (che rappresenta una lettera), e caratteri letterali, come “a” o “1”. Il termine Regex deriva da “Regular Expression”.

Metacaratteri e Costrutti base delle Regex

Nelle espressioni regolari, i metacaratteri sono caratteri che hanno un significato speciale. Essi sono la chiave per creare pattern di ricerca potenti e flessibili. Ecco un elenco dettagliato dei metacaratteri e costrutti base nelle Regex,

Metacaratteri

  • \ – Usato per annullare il significato speciale del carattere successivo (ad es. \\d rappresenta una cifra).
  • ^ – Corrisponde all’inizio di una stringa.
  • $ – Corrisponde alla fine di una stringa.
  • . – Corrisponde a qualsiasi carattere tranne la nuova riga.
  • | – Operatore OR. Corrisponde a una sequenza o all’altra (ad es. “a|b” corrisponde a “a” o “b”).
  • () – Raggruppa una parte dell’espressione regolare, consentendo di applicare quantificatori a più caratteri contemporaneamente.
  • [] – Definisce una classe di caratteri. Corrisponde a qualsiasi carattere all’interno delle parentesi quadre.
  • {} – Quantificatore che specifica quante volte il carattere o il gruppo precedente deve apparire.

Classi di caratteri predefinite

  • \d – Corrisponde a qualsiasi cifra numerica (0-9).
  • \D – Corrisponde a qualsiasi carattere non numerico.
  • \w – Corrisponde a qualsiasi carattere alfanumerico, compreso l’underscore (_).
  • \W – Corrisponde a qualsiasi carattere non alfanumerico.
  • \s – Corrisponde a qualsiasi carattere di spaziatura (spazi, tabulazioni, nuove righe).
  • \S – Corrisponde a qualsiasi carattere non di spaziatura.

Quantificatori

  • * – Corrisponde a zero o più occorrenze del carattere o gruppo precedente.
  • + – Corrisponde a una o più occorrenze del carattere o gruppo precedente.
  • ? – Corrisponde a zero o una occorrenza del carattere o gruppo precedente.
  • {n} – Corrisponde a esattamente n occorrenze del carattere o gruppo precedente.
  • {n,} – Corrisponde a n o più occorrenze del carattere o gruppo precedente.
  • {n,m} – Corrisponde a tra n e m occorrenze del carattere o gruppo precedente.

Asserti

  • \b – Corrisponde alla posizione tra una parola e uno spazio.
  • \B – Corrisponde alla posizione non tra una parola e uno spazio.
  • (?=…) – Positive lookahead. Corrisponde solo se c’è … dopo la posizione corrente.
  • (?!…) – Negative lookahead. Corrisponde solo se non c’è … dopo la posizione corrente.

Quando si combinano questi costrutti, si possono creare pattern di ricerca molto potenti e specifici per molte applicazioni.

Soluzioni online di Regex complesse per le URL

Le URL possono variare notevolmente nella loro struttura e complessità. Le espressioni regolari possono aiutare a estrarre informazioni specifiche dalle URL o a convalidarle.

Validazione di un URL base

^(https?:\/\/)?([\w\.]+)\.([a-z]{2,6}\.?)(\/[\w\.]*)*\/?$

Questa Regex convalida un URL di base, accettando sia protocolli http che https, subdomain, domini e percorsi.

Estrazione del dominio

https?:\/\/([^\/]+)

Questa espressione regolare estrae il dominio di un URL. Ad esempio, dall’URL “https://www.esempio.it/pagina1”, restituirebbe “www.esempio.it”.

Estrazione del protocollo

^(\w+):

Estrae il protocollo da un URL, che può essere “http” o “https”.

Verifica della presenza di una query string

\?.+=.+

Questa Regex verifica la presenza di una query string in un URL. Una query string inizia con un “?” seguito da una combinazione di chiave e valore.

Estrazione del path di un URL

https?:\/\/[^\/]+(\/[^?#]*)

Estrae il percorso di un URL, escludendo il dominio, la query string e l’ancora. Ad esempio, dall’URL “https://www.esempio.it/cartella1/pagina1”, restituirebbe “/cartella1/pagina1”.

Verifica di URL con un numero specifico di segmenti di percorso

https?:\/\/[^\/]+(\/[^\/]+){3}\/?$

Questa Regex verifica che un URL abbia esattamente tre segmenti di percorso. Ad esempio, corrisponderebbe a “https://www.esempio.it/seg1/seg2/seg3”, ma non a “https://www.esempio.it/seg1/seg2”.

Convalida di un URL con un’estensione di file specifica

https?:\/\/.+\.pdf$

Questa espressione regolare convalida gli URL che terminano con l’estensione “.pdf”.

Estrazione di tutti i parametri di query

(?<=\?).*

Estrae tutta la query string di un URL, escludendo il carattere “?” iniziale.

Convalida di URL che contengono numeri

https?:\/\/[\w\.-]+\/\d+

Questa Regex convalida gli URL che contengono numeri nel loro percorso, ad esempio “https://www.esempio.it/prodotto/12345”.

Con una comprensione approfondita della sintassi delle espressioni regolari, è possibile creare pattern di ricerca altamente specifici e potenti per soddisfare qualsiasi esigenza.

Regex complesse tipiche di sviluppatori

Gli sviluppatori utilizzano spesso espressioni regolari per una varietà di compiti, dalla validazione dei dati all’analisi del testo. Le Regex possono diventare piuttosto complesse a seconda del problema specifico che si sta cercando di risolvere. Di seguito sono elencati alcuni esempi comuni di Regex complesse utilizzate dagli sviluppatori e una breve spiegazione di ciò che ciascuna fa.

Validazione di un indirizzo email

^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$

Questa Regex convalida la struttura di base di un indirizzo email, garantendo che contenga caratteri alfanumerici, seguiti da un “@” e un dominio.

Convalida di un URL

^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$

Questa espressione regolare convalida la struttura di base di un URL, accettando sia protocolli http che https, subdomain, domini e percorsi.

Convalida di un numero di telefono (formato internazionale)

^\+?[\d\s]{3,}$

Questa Regex valida numeri di telefono in formato internazionale, accettando numeri che iniziano con un “+” e possono avere spazi tra di loro.

Eliminazione di tag HTML

<[^>]*>

Questa espressione regolare può essere utilizzata per eliminare tutti i tag HTML da una stringa, lasciando solo il testo visibile.

Convalida di una data in formato YYYY-MM-DD

^(19|20)\d\d[-](0[1-9]|1[012])[-](0[1-9]|[12][0-9]|3[01])$

Questa Regex valida le date in formato YYYY-MM-DD, accettando anni dal 1900 al 2099.

Ricerca di numeri esadecimali

\b[0-9A-Fa-f]+\b

Questa espressione regolare identifica numeri esadecimali in una stringa.

Convalida di un codice fiscale

^(?!000|666|9)\d{3}-(?!00)\d{2}-(?!0000)\d{4}$

Questa Regex può essere utilizzata per convalidare un codice fiscale, garantendo che non contenga sequenze non valide come “000”, “666”, o “9” all’inizio.

Ricerca di commenti multi-linea in codice sorgente

\/\*[\s\S]*?\*\/

Questa espressione regolare identifica commenti multi-linea (come quelli in C o Java) in una stringa di codice sorgente.

Regex complesse tipicamente usate dai Marketers

I marketer spesso utilizzano le espressioni regolari per analizzare e segmentare i dati, monitorare le campagne e ottimizzare le strategie di marketing. Le Regex possono aiutarli a estrarre informazioni specifiche da grandi quantità di dati o a filtrare risultati in strumenti come Google Analytics.

Monitoraggio delle campagne UTM

utm_(source|medium|campaign|term|content)=([^&]+)

Questa Regex estrae i parametri UTM da un URL, permettendo ai marketer di analizzare da dove provengono i visitatori e come interagiscono con le campagne pubblicitarie.

Filtrare URL specifici in Google Analytics

^\/(blog|news|articles)

Questa espressione regolare aiuta a filtrare le visualizzazioni di pagine che iniziano con “/blog”, “/news” o “/articles”, permettendo ai marketer di analizzare specificamente il traffico verso sezioni del sito come blog o notizie.

Identificazione di domini di riferimento

^.*\.(facebook|twitter|linkedin)\.com$

Questa Regex identifica i riferimenti provenienti da specifici social media come Facebook, Twitter o LinkedIn. Può essere utilizzata per analizzare il traffico proveniente da specifiche piattaforme social.

Convalida di codici promozionali

^PROMO[0-9]{4}$

Questa espressione regolare convalida codici promozionali che iniziano con la parola “PROMO” seguita da quattro cifre.

Segmentazione per tipo di dispositivo

(iPhone|iPad|Android|Windows Phone)

Questa Regex identifica specifici tipi di dispositivi in stringhe di agenti utente, aiutando i marketer a segmentare gli utenti in base al dispositivo utilizzato.

Identificazione di query di ricerca

q=([^&]+)

Questa espressione regolare estrae termini di ricerca da URL, spesso utilizzata per analizzare quali parole chiave stanno portando traffico al sito da motori di ricerca come Google.

Convalida di numeri di telefono in annunci

^\+?[\d\s\-]{8,}$

Questa Regex valida numeri di telefono in annunci pubblicitari, garantendo che contengano almeno 8 cifre e possano includere spazi, trattini o un prefisso “+”.

Gli esempi sopra rappresentano solo una selezione delle molte Regex complesse che i marketer potrebbero utilizzare nella loro quotidiana attività professionale. La capacità di utilizzare efficacemente le espressioni regolari può offrire ai marketer una notevole flessibilità e precisione nell’analisi e nella segmentazione dei dati.

Soluzioni online di Regex complesse per usi comuni

Alcuni esempi di Regex complesse e una breve descrizione di ciò che ciascuna di esse fa rispetto ad un contesto d’uso comune.

Validazione Email

^[\w\.-]+@[\w\.-]+\.\w+$

Questa Regex valida indirizzi email. Corrisponde a sequenze di caratteri alfanumerici (e alcuni caratteri speciali come . e -) seguiti da un @, un altro gruppo di caratteri alfanumerici e infine un’estensione di dominio.

URL Validi

^(https?:\/\/)?([\w\.]+)\.([a-z]{2,6}\.?)(\/[\w\.]*)*\/?$

Questa Regex valida gli URL. Può gestire protocolli http e https, subdomain, domini e percorsi.

Numero di telefono (formato internazionale)

^\+?[\d\s]{3,}$

Questa Regex valida numeri di telefono in formato internazionale. Accetta numeri che iniziano con un “+” e possono avere spazi tra di loro.

Data in formato YYYY-MM-DD

^(19|20)\d\d[-](0[1-9]|1[012])[-](0[1-9]|[12][0-9]|3[01])$

Questa Regex valida le date in formato YYYY-MM-DD. Funziona per gli anni dal 1900 al 2099.

Tag HTML

<[^>]+>

Questa Regex trova i tag HTML in una stringa. Corrisponde a qualsiasi sequenza di caratteri racchiusa tra < e >.

Stringhe che contengono solo lettere

^[a-zA-Z]+$

Questa Regex corrisponde a stringhe che contengono solo lettere, sia maiuscole che minuscole.

IP Address

^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$

Questa Regex valida gli indirizzi IP, assicurandosi che ogni segmento sia compreso tra 0 e 255.

Lascia un commento