Testo

Regex Tester / Find & Replace

Test di espressioni regolari su testo reale: corrispondenze evidenziate e gruppi di cattura analizzati, oppure sostituzione delle corrispondenze trovate con un nuovo testo.


                        

                        

A regular expression (regex) is a compact language for describing patterns in text — for searching, validating a format, or replacing matches. This tool highlights matches in real text as you type the pattern, breaks out capture groups, and supports a find-and-replace mode.

How to use it

Common uses

Things to keep in mind

Greedy quantifiers (*, +) grab as many characters as possible — add ? for the minimal match instead (e.g. .*? instead of .*).

Syntax varies slightly between languages — an expression that works here (a JavaScript engine) may need adjusting for PCRE, .NET, or Python.

Articolo su questo strumento: Espressioni regolari: sintassi di base e pattern comuni

Domande frequenti

Quale motore regex viene utilizzato?

Lo strumento usa il motore regex di JavaScript, non PCRE, quindi alcune sintassi specifiche di PCRE (come asserzioni ricorsive o certe modalità di corrispondenza possessiva) non funzioneranno qui; sono supportati flag comuni come g, i, m, s e u.

Qual è la differenza tra quantificatori greedy e lazy, e tra Test e Replace?

Un quantificatore greedy come * o + cattura quanto più testo possibile, mentre la versione lazy (*?, +?) si ferma il prima possibile; per le modalità, Test evidenzia le corrispondenze ed elenca i gruppi di cattura (inclusi quelli con nome), mentre Replace applica il testo sostitutivo, con riferimenti come $1, a ogni corrispondenza.

Il mio testo e la mia espressione vengono inviati a un server?

No, la valutazione dell'espressione regolare avviene interamente lato client nel tuo browser, nulla viene inviato online.

Cos'è il backtracking catastrofico?

Quantificatori annidati come (a+)+ possono, su determinate stringhe di input, costringere il motore a esaminare un numero esponenziale di combinazioni — la pagina o lo script "si bloccano" su un'espressione apparentemente semplice. È una vulnerabilità reale (ReDoS), quindi i quantificatori annidati complessi vanno testati su stringhe lunghe quasi corrispondenti.

Perché la mia espressione funziona in un linguaggio di programmazione ma non in un altro?

La sintassi regex non è completamente standardizzata: PCRE (PHP e molti altri linguaggi), .NET, Python re e JavaScript presentano piccole differenze nel supporto di alcuni costrutti (ad esempio i look-behind o i gruppi con nome) — un'espressione scritta per un motore non funziona sempre senza modifiche in un altro.

Articoli: Testo

Case Converter: perché esistono stili di denominazione diversi

Perché in uno stesso progetto le variabili si scrivono in camelCase ma i file in kebab-case, e da dove vengono queste regole.

Text Diff: come gli algoritmi trovano la differenza tra due testi

Come un algoritmo di diff trova l'insieme minimo di modifiche tra due versioni di un testo.

Ordinare e deduplicare righe: a cosa serve

Perché un ordinamento numerico che mette "10" prima di "9" è un errore, e come evitarlo.

String Escape: perché lo stesso testo va escapato in modo diverso

Perché la stessa virgoletta viene escapata in modo diverso in una stringa JS, in JSON e in un comando shell.

CRLF contro LF: perché i caratteri di fine riga contano ancora

Perché un file scritto su Windows può apparire "completamente modificato" in git su Linux.

Contare caratteri e parole: perché non è sempre banale

Perché un'emoji o una lettera accentata possono contare come più caratteri contemporaneamente.

Lorem Ipsum: da dove viene il testo segnaposto e a cosa serve

Perché i designer usano deliberatamente testo "senza senso" invece di contenuti reali nei mockup.

Slugify: come trasformare un testo qualsiasi in un URL

Come un titolo come "Ciao, Mondo!" diventa una stringa compatibile con gli URL come ciao-mondo.

Markdown: perché una sintassi di testo semplice ha battuto gli editor ricchi

Perché gli sviluppatori preferiscono scrivere la documentazione in Markdown invece che in un editor di testo ricco.

Spazi e caratteri invisibili: la causa nascosta di bug strani

Perché due stringhe apparentemente identiche possono non corrispondere a causa di un carattere invisibile.

Text Reverse: perché "invertire un testo" è più difficile di quanto sembri

Perché un'inversione ingenua di una stringa può trasformare un'emoji in byte inutilizzabili.

Analisi di frequenza del testo: a cosa serve contare le ripetizioni delle parole

Come la frequenza delle lettere in un testo cifrato aiuta a violare i cifrari a sostituzione più semplici.