Logo Wand.Tools

Generatore di espressioni regolari

Genera e spiega intelligentemente le espressioni regolari, supporta vari pattern di corrispondenza comuni

Tutorial Espressioni Regolari JavaScript

Tutorial Espressioni Regolari JavaScript (Sintassi Completa + Esempi Comuni)

> Questo articolo è un tutorial completo sulle Espressioni Regolari (RegExp) in JavaScript, dall’introduzione all’avanzato. Include regole di sintassi, metacaratteri comuni, flag, asserzioni, gruppi, matching avido vs. pigro, ed è applicabile allo sviluppo front-end, al web scraping, alla validazione di moduli e ad altri scenari. È adatto sia per utenti principianti che avanzati per l’apprendimento e la consultazione.

Sintassi Base delle Espressioni Regolari

Due modi per creare un’Espressione Regolare

const regex1 = /abc/;             // Modo letterale
const regex2 = new RegExp('abc'); // Modo costruttore

Flag Comuni

Flag Descrizione
g Corrispondenza globale
i Corrispondenza case-insensitive
m Corrispondenza multiline
s Permette a . di corrispondere al newline (ES2018)
u Supporta Unicode (ES6)
y Corrispondenza “sticky” (ES6)

Esempio:

const re = /hello/gi;
const str = 'Hello hello';
console.log(str.match(re)); // ["Hello", "hello"]

Metacaratteri e Insiemi di Caratteri

Metacaratteri Comuni

Carattere Significato
. Corrisponde a qualsiasi carattere (eccetto newline)
\d Corrisponde a una cifra [0-9]
\D Corrisponde a un carattere non numerico
\w Corrisponde a un carattere di parola (alfanumerico + underscore)
\W Corrisponde a un carattere non di parola
\s Corrisponde a un carattere di spazio bianco
\S Corrisponde a un carattere non di spazio bianco
\b Corrisponde a un confine di parola
\B Corrisponde a un non-confine di parola
\\ Corrisponde a un backslash

Insiemi di Caratteri e Intervalli

/[abc]/     // Corrisponde a 'a' o 'b' o 'c'
/[a-z]/     // Corrisponde alle lettere minuscole
/[A-Z]/     // Corrisponde alle lettere maiuscole
/[0-9]/     // Corrisponde alle cifre
/[^abc]/    // Corrisponde a qualsiasi carattere eccetto a, b o c

Quantificatori (Ripetizione)

Quantificatore Significato
* Corrisponde all’elemento precedente 0 o più volte
+ Corrisponde all’elemento precedente 1 o più volte
? Corrisponde all’elemento precedente 0 o 1 volta
{n} Corrisponde esattamente n volte
{n,} Corrisponde almeno n volte
{n,m} Corrisponde almeno n volte, al massimo m volte

Esempio:

/\d{4}/.test("2025");       // true
/ab{2,4}c/.test("abbbc");   // true

Raggruppamento e Cattura

/(abc)/         // Gruppo di cattura
/(abc){2}/      // Gruppo di cattura ripetuto
/(?:abc)/       // Gruppo non di cattura
/(a)(b)(c)/     // Multipli gruppi di cattura

Estrazione delle corrispondenze:

const match = /(hello) (\w+)/.exec("hello world");
console.log(match[1]); // hello
console.log(match[2]); // world

Asserzioni (Zero-width Assertions)

Lookahead Positivo

/\d+(?=px)/     // Corrisponde alle cifre seguite da px

Lookahead Negativo

/\d+(?!px)/     // Corrisponde alle cifre non seguite da px

Lookbehind (ES2018+)

/(?<=\$)\d+/    // Corrisponde alle cifre precedute da $
/(?<!$)\d+/    // Corrisponde alle cifre non precedute da $

Matching Avido vs. Pigro

Espressione Comportamento di Corrispondenza
.* Avido (il più possibile)
.*? Pigro (il meno possibile)

Esempio:

const str = '<p>text</p><p>more</p>';
const greedy = /<p>.*<\/p>/;
const lazy = /<p>.*?<\/p>/g;

console.log(str.match(greedy)); // ['<p>text</p><p>more</p>']
console.log(str.match(lazy));   // ['<p>text</p>', '<p>more</p>']

Esempi di Casi d’Uso Comuni

Validazione Email

/^[\w.-]+@[a-zA-Z\d.-]+\.[a-zA-Z]{2,}$/.test("[email protected]");

Validazione Numero di Cellulare (Cina Continentale)

/^1[3-9]\d{9}$/.test("13888888888");

Rimuovi Tutti gli Spazi Bianchi

const cleaned = str.replace(/\s+/g, '');

Estrai Dominio da URL

const domain = url.match(/https?:\/\/([^\/]+)/)[1];

Riepilogo Metodi Regex

Metodo Descrizione
test(str) Verifica se la stringa corrisponde
exec(str) Restituisce l’oggetto risultato di corrispondenza (con gruppi)
str.match(re) Restituisce tutte le corrispondenze (con flag globale)
str.replace() Sostituisce il contenuto corrispondente
str.split(re) Divide la stringa usando regex
str.search(re) Restituisce l’indice della prima corrispondenza

Conclusione

Questo tutorial fornisce una panoramica sistematica della sintassi delle Espressioni Regolari in JavaScript e esempi di applicazioni pratiche, adatti allo sviluppo front-end, back-end, elaborazione del testo e vari altri casi d’uso. Padroneggiare le espressioni regolari può migliorare notevolmente l’efficienza nell’elaborazione delle stringhe.