Informazioni sullo strumento
Le espressioni regolari compaiono di continuo nel codice di test: verificare una riga di log, estrarre un ID da una risposta, validare un formato, mascherare segreti nei report. Questo tester usa il motore RegExp JavaScript del browser, quindi i risultati coincidono con quelli di Playwright, Cypress, Jest e Node. I match vengono evidenziati mentre scrivi, ogni gruppo di cattura (numerato o con nome) è elencato con la sua posizione e l’anteprima di sostituzione mostra il risultato di String.replace. Il matching gira in un worker in background che viene interrotto dopo 1,5 secondi, quindi un pattern con backtracking catastrofico non può bloccare la pagina.
Come si usa
- Inserisci un pattern senza le barre di delimitazione e attiva i flag che ti servono (g, i, m, s, u, y).
- Incolla una stringa di test, oppure clicca uno dei pattern QA per caricare un pattern con un testo d’esempio corrispondente.
- Controlla il testo evidenziato e la tabella dei match per gruppi e indici.
- Attiva “Replace preview” per provare una sostituzione con $1, $<name> o $&.
Regex Tester: domande frequenti
Un pattern che funziona qui funzionerà anche in Java o Python?
In gran parte sì, ma non sempre. Le basi sono comuni, ma i gruppi con nome si scrivono (?<name>) in JavaScript e Java e (?P<name>) in Python, il supporto al lookbehind varia e i flag s e y sono specifici di JavaScript. Per tutto ciò che è avanzato, prova nel linguaggio di destinazione.
Perché il tester si è fermato con un timeout?
I pattern con quantificatori annidati, come (a+)+ o (.*)*, possono richiedere tempo esponenziale con input che corrispondono quasi. Si chiama backtracking catastrofico, e lo stesso pattern potrebbe bloccare un’esecuzione di test o un server (ReDoS). Rendi più specifico il quantificatore interno o elimina l’annidamento.
Perché vedo un solo match?
Senza il flag g (global) una regex JavaScript si ferma al primo match. Attiva g per trovare tutte le occorrenze; è anche ciò che richiedono String.prototype.matchAll e replaceAll.