Strumento gratuito

    Espressioni regolari Tester

    Prova, correggi gli errori e visualizza le espressioni regolari con la corrispondenza 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 di testi, la convalida degli input, le operazioni di ricerca e sostituzione e l'analisi dei log.

    Flag delle espressioni regolari in JavaScript

    • g — Globale: trova tutte le corrispondenze, non solo la prima
    • i — Senza distinzione tra maiuscole e minuscole
    • m — Multilinea: ^ e $ corrispondono ai limiti di riga
    • s — Dotall: il punto . corrisponde anche ai newline

    Casi d'uso comuni

    • Validazione di indirizzi email, numeri di telefono e URL
    • Estrazione di dati da file di log e testo strutturato
    • Ricerca e sostituzione in editor di codice e IDE
    • Creazione di input mask e validatori di form
    • Parsing e trasformazione di dati CSV, JSON e XML

    Quando ricorrere alle espressioni regolari

    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 instradamento 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 altro formato con delimitatori annidati. In questi casi, usa un vero parser; l'espressione regolare che scrivi oggi si interromperà silenziosamente al prossimo caso limite.

    Espressione regolare Domande frequenti

    Risposte rapide alle domande sulle espressioni regolari che ti vengono in mente quando scrivi i pattern a mano.

    Quale variante di espressioni regolari utilizza questo tester?
    Espressioni regolari ECMAScript / JavaScript (il motore integrato nel browser). I pattern che funzionano qui funzioneranno anche in `String.prototype.match`, `RegExp.test` e nella maggior parte dei moderni linter o estensioni per editor basati su JS. I pattern scritti per PCRE (PHP, Perl), `re` di Python o `regexp` di Go potrebbero comportarsi in modo diverso: lookbehind, gruppi atomici e la sintassi dei gruppi denominati sono punti di divergenza comuni.
    Come faccio a rendere il mio pattern insensibile alle maiuscole/minuscole?
    Attiva il flag `i` (ignora maiuscole/minuscole). Questo applica l'ignora maiuscole/minuscole all'intero pattern, quindi `/Hello/i` trova corrispondenze con `hello`, `HELLO` e `HeLLo`. Se vuoi che solo una parte del pattern ignori le maiuscole/minuscole, devi specificare i caratteri in modo esplicito: le espressioni regolari in JavaScript non supportano modificatori in linea come `(?i:...)`.
    Perché la mia espressione regolare non riconosce le corrispondenze su più righe?
    Due opzioni influenzano il comportamento delle stringhe su più righe. Il flag `m` (Multiline) modifica `^` e `$` in modo che corrispondano ai confini delle righe invece che solo all'inizio/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 multilinea richiede entrambi.
    Qual è la differenza tra quantificatori avidi e pigri?
    Per impostazione predefinita, i quantificatori come `*`, `+` e `{n,m}` sono avidi: consumano quanto più input possibile pur consentendo comunque il successo della corrispondenza complessiva. Aggiungendo `?` li si rende pigri: consumano il minimo indispensabile e lasciano che le parti successive del pattern si occupino del resto. Il quantificatore avido `<.+>` applicato a `` trova corrispondenza con l'intera stringa; il quantificatore pigro `<.+?>` trova corrispondenza solo con ``. I quantificatori pigri sono solitamente ciò che si desidera quando si estraggono campi tra delimitatori.
    Come faccio a escludere i caratteri speciali dal mio pattern?
    Perché la mia espressione regolare trova più (o meno) corrispondenze del previsto?