Strumento gratuito

    Regex Tester

    Testa, correggi gli errori e visualizza le espressioni regolari con la ricerca in tempo reale.

    Espressione regolare

    //g
    Bandiere:
    Impostazioni predefinite:

    Stringa di prova

    Cosa sono le espressioni regolari?

    Le espressioni regolari (Regex) sono modelli utilizzati per individuare combinazioni di caratteri all'interno di stringhe. Sono supportate praticamente in tutti i linguaggi di programmazione e sono fondamentali per l'elaborazione del testo, la convalida degli input, le operazioni di ricerca e sostituzione e l'analisi dei log.

    Flag delle Regex in JavaScript

    • g — Globale: trova tutte le corrispondenze, non solo la prima
    • i — Corrispondenza senza distinzione tra maiuscole e minuscole
    • m — Multilinea: ^ e $ corrispondono ai confini delle righe
    • s — Dotall: . corrisponde ai caratteri di nuova riga

    Casi d'uso comuni

    • Verifica di indirizzi e-mail, numeri di telefono e URL
    • Estrazione di dati dai file di log e da testi strutturati
    • Cerca e sostituisci negli editor di codice e negli IDE
    • Creazione di maschere di immissione dati e validatori per i moduli
    • Analisi e trasformazione di dati CSV, JSON e XML

    Quando ricorrere alle espressioni Regex

    Le espressioni regolari danno il meglio di sé con pattern brevi e ben definiti in cui è necessario trovare corrispondenze, estrarre o sostituire del testo: analisi delle righe di log, regole di routing degli URL, convalida dei campi dei moduli e operazioni di ricerca e sostituzione all’interno di un editor. Diventano invece un ostacolo quando l’input è in realtà un linguaggio strutturato: HTML, JSON, codice sorgente o qualsiasi cosa con delimitatori annidati. In questi casi, è meglio utilizzare un vero e proprio parser; il Regex che scrivete oggi smetterà di funzionare silenziosamente al primo caso limite.

    Regex Domande frequenti

    Risposte rapide alle domande sulle RegEx che ti capita davvero di farti quando scrivi i pattern a mano.

    Quale variante di Regex utilizza questo tester?
    Espressioni regolari ECMAScript / JavaScript (il motore integrato nel browser). I pattern che funzionano qui funzioneranno anche in `String.prototype.match`, `RegEx.test` e nella maggior parte dei linter o delle estensioni per editor basati su JavaScript. I pattern scritti per PCRE (PHP, Perl), `re` di Python o `regexp` di Go potrebbero comportarsi in modo diverso: i lookbehind, i gruppi atomici e la sintassi dei gruppi denominati sono punti di divergenza comuni.
    Come faccio a rendere il mio pattern insensibile alle maiuscole e minuscole?
    Attiva il flag `i` (indifferenza alle maiuscole/minuscole). Questo applica l'indifferenza alle maiuscole/minuscole all'intero pattern, quindi `/Hello/i` corrisponde a `hello`, `HELLO` e `HeLLo`. Se si desidera che solo una parte del pattern ignori le maiuscole e minuscole, è necessario specificare esplicitamente i caratteri interessati — le espressioni RegEx in JavaScript non supportano modificatori in linea come `(?i:...)`.
    Perché la mia Regex non riconosce le corrispondenze su più righe?
    Due flag influenzano il comportamento nelle stringhe su più righe. Il flag `m` (Multiline) modifica il comportamento di `^` e `$`, facendo sì che corrispondano ai confini delle righe anziché solo all'inizio e alla fine dell'intera stringa — utile per la convalida riga per riga. Separatamente, il flag `s` (dotAll) fa sì che `.` corrisponda anche ai caratteri di nuova riga; senza di esso, `.*` si ferma al primo `\n`. La maggior parte dei casi d'uso su più righe richiede entrambi.
    Qual è la differenza tra quantificatori avidi e pigri?
    Per impostazione predefinita, i quantificatori come `*`, `+` e `{n,m}` sono "avidi" (greedy): consumano quanto più input possibile pur consentendo comunque il successo della corrispondenza complessiva. Aggiungendo `?` diventano "pigroni" (lazy): consumano il minimo indispensabile e lasciano che le parti successive del pattern acquisiscano il resto. Il quantificatore avido `<.+>` applicato a `` trova corrispondenza con l’intera stringa; quello pigro `<.+?>` trova corrispondenza solo con ``. I quantificatori pigri sono solitamente quelli che si desiderano quando si estraggono campi tra delimitatori.
    Come faccio a escludere i caratteri speciali dal mio pattern?
    Perché la mia espressione Regex trova più (o meno) corrispondenze del previsto?