Tester e Matcher Espressioni Regolari (RegEx)

Testa espressioni regolari JavaScript con evidenziazione dei match in tempo reale.

Tester e Matcher Espressioni Regolari (RegEx)

Testa espressioni regolari JavaScript con evidenziazione dei match in tempo reale.

Come funziona

1
Inserisci o incolla testo
Digita o incolla il testo o codice nell'area di lavoro.
2
Applica la modifica
Esegui lo strumento per convertire, filtrare o formattare.
3
Copia il risultato
Copia l'output elaborato negli appunti con un clic.
Centro Concetti e Conoscenza

Tester Espressioni Regolari (RegEx), Evidenziazione Match e Gruppi di Cattura

Le espressioni regolari (RegEx o RegExp) costituiscono uno degli strumenti algoritmici più potenti per la ricerca, la convalida formale e l'estrazione di pattern testuali all'interno di stringhe, log applicativi e basi di dati. Tuttavia, la sintassi complessa basata su quantificatori, lookaround, classi di caratteri e flag rende l'elaborazione manuale soggetta a sviste logiche e vulnerabilità di backtracking catastrofico. Questo tester interattivo compila l'espressione in tempo reale, evidenziando istantaneamente i match riscontrati e dettagliando i gruppi di cattura estratti.

Consideriamo uno sviluppatore che deve validare e isolare componenti all'interno di un file di log con pattern di indirizzi IP e porte di rete. Inserendo la regola (?<ip>\b\d{1,3}(?:\.\d{1,3}){3}\b):(?<porta>\d{2,5}) con flag globale e multiriga (/gm) su un testo di prova contenente righe come Client connected from 192.168.1.105:8080 at runtime, lo strumento evidenzia istantaneamente la corrispondenza con colore dedicato. Nella sezione laterale dei dettagli di cattura vengono isolati i singoli gruppi nominati: il gruppo 'ip' con valore '192.168.1.105' e il gruppo 'porta' con valore '8080', riportando per ciascuno l'indice di carattere iniziale e finale all'interno del flusso.

Tutte le operazioni di compilazione della regex, scansione del testo ed evidenziazione avvengono al 100% all'interno del motore JavaScript del tuo browser. I tuoi log di sistema, credenziali nei testi di test e dati di produzione non vengono mai trasmessi verso server esterni, tutelando la riservatezza delle tue infrastrutture.

Guida Tecnica Dettagliata

Perché la tua Regex non trova corrispondenze: Flag, ancore multilinea ed escape

Risolvi gli errori delle espressioni regolari. Guida pratica ai flag g, i, m, s, alle ancore multilinea ^ e $, ai quantificatori greedy vs lazy e al ReDoS.

Leggi la guida completa →

Architettura di Base e Formula Matematica

Compilazione: new RegExp(Pattern, Flags) → Esecuzione: Text.matchAll(Regex) → Array di Catture e Offset

Compila il pattern applicando i flag specificati ed esegue la ricerca iterativa individuando le corrispondenze globali e la gerarchia dei gruppi di cattura parentetici.

Migliori Pratiche e Linee Guida Essenziali

  • Attenzione ai quantificatori avidi (Greedy vs Lazy): Ricorda che i quantificatori come * e + catturano il massimo numero possibile di caratteri; aggiungi un punto interrogativo (*? o +?) per renderli non avidi.
  • Evita pattern a rischio di backtracking catastrofico (ReDoS): Sotto-espressioni nidificate ripetute (come (a+)+$) possono causare tempi di calcolo esponenziali che bloccano i server di produzione su stringhe maliziose.
  • Sfrutta i gruppi di cattura non catturanti quando possibile: Se devi raggruppare condizioni logiche senza estrarre il valore, usa la sintassi (?:pattern) per migliorare l'efficienza di calcolo.
  • Verifica sempre i limiti di parola (\b) e le ancore (^ e $): L'utilizzo corretto delle ancore di inizio e fine riga impedisce che un pattern accetti accidentalmente porzioni parziali non desiderate.

Domande Frequenti (FAQ)

Cosa significano i principali flag delle espressioni regolari (g, i, m, s)?
'g' (global) trova tutte le corrispondenze nel testo; 'i' (ignore case) rende la ricerca insensibile a maiuscole e minuscole; 'm' (multiline) fa corrispondere ^ e $ a ogni singola riga; 's' (dotAll) permette al punto di catturare anche i ritorni a capo.
Qual è la differenza tra un gruppo di cattura numerato e uno nominato (Named Group)?
I gruppi standard vengono indicizzati con numeri progressivi ($1, $2), mentre i gruppi nominati (?<nome>pattern) associano un'etichetta semantica al risultato, migliorando la leggibilità del codice.
Cosa si intende per asserzioni Lookahead e Lookbehind?
Sono costrutti condizionali a consumo zero di caratteri: consentono di verificare se una sottostringa è seguita (?=...) o preceduta (?<=...) da un determinato pattern senza includerlo nel match finale.
Il testo o le espressioni inserite vengono memorizzate su un database?
Assolutamente no. Il collaudo delle espressioni regolari viene eseguito totalmente nella sandbox JavaScript locale del browser; nessun testo o log viene mai memorizzato all'esterno.