Come provare un’espressione regolare?

Inserisci un pattern e un testo di esempio e lo strumento evidenzia tutte le corrispondenze, elenca i gruppi di cattura e ti permette di attivare o disattivare flag come global, multiline e case-insensitive. La ricerca avviene nel tuo browser con il motore di espressioni regolari di JavaScript, quindi i risultati sono esattamente quelli che vedrà il tuo codice.

Funziona interamente nel tuo browser · nessun caricamento · nessun account · nessuna filigrana

  1. Digita un pattern e spunta i flag che vuoi.
  2. Incolla un testo di esempio su cui fare la ricerca.
  3. Guarda le evidenziazioni, poi l’elenco delle corrispondenze qui sotto.
Flag

Evidenziazioni

Corrispondenze

    Cosa può fare questa pagina

    Quando usare questa pagina

    • Provare un’espressione regolare JavaScript su una stringa di esempio.
    • Vedere quali gruppi di cattura e quali flag producono quali corrispondenze.
    • Controllare un pattern prima di inserirlo nel codice front-end.

    Quando scegliere un’altra soluzione

    • Il pattern è destinato a Python, PCRE, .NET o Java: sintassi e comportamento di backtracking differiscono da RegExp di JavaScript.
    • L’input non è attendibile e il pattern potrebbe andare in backtracking catastrofico; la prova gira sul thread principale e può bloccare la scheda.
    • Ti servono una spiegazione passo per passo, un benchmark o un timeout.

    Come si confronta con le alternative

    regex101 e strumenti simili ti permettono di cambiare motore, spiegare ogni token e imporre un timeout. Questa pagina esegue RegExp del browser senza nessuna di queste protezioni, quindi è fedele a JavaScript ma ne condivide i limiti: niente gruppi atomici, niente quantificatori possessivi e nessuna difesa da un pattern patologico. Un’espressione volutamente sbagliata può bloccare la scheda finché non la chiudi.

    Dove vanno i tuoi file

    Da nessuna parte. Questa pagina carica il codice che fa il lavoro e, da quel momento, il file che apri viene letto dal tuo browser. Nessun passaggio di caricamento, nessuna copia temporanea su un server, nessuna pulizia di cui fidarsi: i dati non attraversano mai la rete, quindi non resta nulla da cancellare. Puoi verificarlo da solo: apri il pannello di rete del browser mentre lo strumento è in esecuzione e guardalo restare silenzioso.

    Domande su questo strumento

    La pagina ha smesso di rispondere quando ho usato il mio pattern. Perché?
    È il backtracking catastrofico: un pattern come (a+)+b su una lunga serie di «a» costringe il motore a provare un numero esponenziale di strade prima di fallire. Questa pagina limita il numero di corrispondenze, così non può girare all’infinito, ma una singola corrispondenza ostinata può comunque richiedere un attimo. Riscrivi i quantificatori annidati in modo che il motore abbia un solo percorso — per esempio a+b — oppure ancora il pattern con ^ o $.
    Quali flag posso attivare?
    g trova tutte le corrispondenze invece della prima, i ignora le maiuscole e le minuscole, m fa sì che ^ e $ corrispondano anche ai ritorni a capo, s permette a . di corrispondere anche ai newline, e u attiva la modalità Unicode completa, necessaria per le sequenze di proprietà \p{...} e per gestire correttamente i caratteri fuori dal piano base. I risultati sono esattamente quelli del motore di JavaScript, quindi coincidono con quelli del tuo codice.
    Perché viene elencato soltanto qualche migliaio di corrispondenze?
    L’elenco è limitato perché un pattern che corrisponde a ogni carattere — per esempio . con il flag global su un documento lungo — non blocchi la scheda mentre costruisce migliaia di righe. Il limite è abbastanza alto per stringhe di prova realistiche; se lo raggiungi, restringi il pattern o accorcia il campione.

    Altri strumenti dello stesso gruppo