Vai al contenuto principale
LibraTool logoLibraTool

Trova e Sostituisci Testo gratis

Cerca e sostituisci testo con corrispondenza semplice o regex, un conteggio live delle corrispondenze e un'anteprima evidenziata. Supporta insensibilità alle maiuscole, parola intera e backreference ai gruppi di acquisizione regex.

Funziona offline una volta caricato
Pulizie rapide
Inserisci un termine di ricerca per iniziare

💡 In modalità regex, usa i gruppi di cattura in Cerca come (\d{4})-(\d{2}) e riferiscili in Sostituisci con $1, $2 — ottimo per riformattare date, nomi o ID in blocco.

Usi comuni

  • Bulk Find and Replace di TestoSostituisci ogni occorrenza di una parola o frase in un blocco di testo contemporaneamente.
  • Cerca e Sostituisci con RegexUtilizza espressioni regolari con gruppi di cattura per riformattare il testo in blocco.
  • Cerca e Sostituisci nel CodiceRinomina variabili o riscrivi pattern in uno snippet rapidamente.
  • Pulisci Dati DisordinatiRimuovi o normalizza caratteri casuali, delimitatori e formattazione nei dati incollati.
  • Sostituisci Parole Durante la ScritturaScambia una parola ripetuta o rinomina un personaggio in una bozza.

Come funziona

Trova e Sostituisci funziona interamente nel tuo browser usando il motore RegExp integrato di JavaScript — nessuna libreria, nessun server, nessun caricamento. Il testo viene elaborato localmente nel momento in cui digiti, usando String.prototype.matchAll per il conteggio e String.prototype.replace per la sostituzione.

  1. 1
    Il pattern viene compilato in RegExp
    Mentre digiti, il termine di ricerca viene compilato in una RegExp JavaScript con un debounce di 150 ms così i pattern patologici non bloccano la scheda a ogni pressione di tasto. In modalità testo semplice ogni metacarattere regex viene prima sottoposto a escape, così punti e parentesi letterali sono trattati come letterali. Abilitare la modalità Regex passa il tuo pattern direttamente. La modalità parola intera avvolge il pattern in ancoraggi di confine parola \b(?:...)\b, e la modalità insensibile alle maiuscole aggiunge il flag i.
  2. 2
    Un singolo passaggio matchAll conta ed evidenzia
    Una singola chiamata matchAll sul testo con debounce produce ogni oggetto corrispondenza. Il conteggio delle corrispondenze viene letto direttamente dalla lunghezza di quell'array. Per testi sotto i 200.000 caratteri, viene costruita un'anteprima evidenziata attraversando gli offset delle corrispondenze e avvolgendo ogni risultato in un tag <mark> — l'escape HTML viene applicato ai segmenti di testo grezzo prima dell'iniezione, non dopo, così le corrispondenze contenenti &, <, o > sono gestite correttamente.
  3. 3
    Sostituisci con testo letterale o backreference di gruppi di cattura
    L'output viene prodotto da String.prototype.replace con il flag globale, sostituendo ogni corrispondenza in una volta. In modalità testo semplice, qualsiasi $ nella stringa di sostituzione viene raddoppiato in $$ così caratteri come $& e $1 vengono inseriti alla lettera invece di essere interpretati come backreference. In modalità Regex, $1, $2, ecc. funzionano come sostituzioni standard di gruppi di cattura JavaScript.
  4. 4
    Copia o scarica il risultato
    Il testo riscritto appare in un'area di testo di sola lettura mentre digiti. La copia usa l'API navigator.clipboard.writeText del browser. Il download costruisce un Blob di tipo text/plain sincronamente e attiva un salvataggio locale — nulla lascia il tuo dispositivo in nessun momento.

Guida

Esempio pratico

Mettiamo che una lista abbia le date scritte con l'anno prima e tu le voglia con il giorno prima. Incolla "Invoice 2026-11-04 due 2026-12-15" in "Il tuo testo", spunta "Espressione regolare", digita (\d{4})-(\d{2})-(\d{2}) in "Trova" e $3/$2/$1 in "Sostituisci con". La riga sotto i riquadri dice "2 corrispondenze trovate", entrambe le date sono evidenziate e "Risultato" mostra "Invoice 04/11/2026 due 15/12/2026". Con la casella deselezionata lo stesso testo viene cercato alla lettera, quindi una ricerca di . in a.b.c trova 2 corrispondenze (i punti), mentre con la casella selezionata ne trova 5, perché . in quel caso significa qualsiasi carattere. La pulizia rapida "Comprimi spazi multipli" trasforma "a b c d" in "a b c d" (3 corrispondenze).

Quali impostazioni usare, e i limiti

  • Inizia con testo semplice. Con "Espressione regolare" deselezionato, ciò che digiti in "Trova" viene cercato esattamente come scritto, e un $ in "Sostituisci con" viene inserito come un normale simbolo del dollaro. Spunta la casella solo quando hai bisogno di schemi come cifre, parti opzionali o gruppi.
  • Controlla le opzioni maiuscole/minuscole e parole intere. La ricerca distingue tra maiuscole e minuscole a meno che "Ignora maiuscole/minuscole" non sia spuntato, quindi "cat" non trova "Cat". "Parola intera" impedisce a "cat" di corrispondere all'interno di "concatenate" e "category". Funziona anche per parole accentate come café e per testi in cinese e giapponese, dove ogni confine di carattere conta come confine di parola. In "cat concatenate Cat category cat." una ricerca semplice di cat trova 4 corrispondenze, mentre ignorando maiuscole/minuscole e con parola intera ne trova 3.
  • In modalità regex, fai attenzione alle ancore di riga. Gli schemi usano la sintassi delle espressioni regolari JavaScript. Non c'è un'opzione multilinea, quindi ^ e $ corrispondono solo all'inizio e alla fine dell'intero testo, non di ogni riga, e . non attraversa un'interruzione di riga. Per ancorare a ogni riga, usa (?<=^|\n) per l'inizio riga e (?=\r?\n|$) per la fine riga. I gruppi di cattura in "Trova" ritornano come $1, $2 in "Sostituisci con".
  • Usa le pulizie rapide. Sotto "Pulizie rapide" ci sono dieci preimpostazioni a clic singolo: "Raddrizza virgolette doppie", "Raddrizza virgolette singole", "Comprimi spazi multipli", "Rimuovi interruzioni di riga", "Tabulazioni in spazi" (quattro spazi), "Elimina spazi finali", "Rimuovi righe vuote" e tre per testi in cinese e giapponese che convertono i caratteri a larghezza intera, convertono la punteggiatura a larghezza intera e rimuovono gli spazi tra i caratteri. Una preimpostazione riempie Trova e Sostituisci e spunta "Espressione regolare". Le due preimpostazioni che convertono i caratteri smettono di convertire non appena modifichi uno dei due riquadri.
  • Carica un file invece di incollare. "Carica un file di testo" apre file .txt, .csv, .log e .md, o altri file di testo, e li legge nel tuo browser. Un file che sembra binario viene rifiutato, e un file di un tipo chiaramente diverso, come un DOCX o PDF, viene respinto con un messaggio che ne indica il tipo. "Scarica .txt" salva il risultato con il nome e l'estensione originali, quindi ordini.csv resta ordini.csv; per il testo incollato il file si chiama trova-sostituisci-risultato.txt.
  • Aspettati una pausa con testi molto grandi. I risultati si aggiornano circa 0,15 secondi dopo che smetti di digitare, 0,35 secondi quando il testo supera i 200.000 caratteri e 0,7 secondi oltre 1.000.000. Sopra i 200.000 caratteri l'anteprima evidenziata viene disattivata e la pagina dice "L'anteprima evidenziata è disabilitata per testi molto grandi – il risultato qui sotto è comunque aggiornato." Il conteggio delle corrispondenze e il risultato continuano a funzionare. Lo strumento non controlla di per sé la dimensione del file, quindi un file molto grande è limitato dalla memoria del tuo browser.

Problemi comuni e come risolverli

Dice "Regex non valida".
Il tuo schema non è una sintassi di espressione regolare valida. Questo di solito accade quando "Espressione regolare" è spuntato mentre cerchi testo normale che contiene simboli come ( [ * + ? o una barra rovesciata. In Chrome, per esempio, C++ dà "Nothing to repeat", [abc dà "Unterminated character class" e una ( da sola dà "Unterminated group". Deseleziona la casella per cercare il testo alla lettera, oppure metti una barra rovesciata prima di ogni simbolo, come in C\+\+. Apri "Dettagli" per vedere il messaggio del browser; la sua formulazione varia a seconda del browser ed è mostrata in inglese.
Dice "Impossibile leggere il file. Scegli un file di testo semplice (.txt, .csv, .log, .md)."
Il file sembra binario: i suoi primi 4.096 caratteri contengono un carattere NUL, come in un file Word, Excel o PDF rinominato .txt, oppure il browser non è riuscito a leggerlo. Apri l'originale nel suo programma e copia il testo, oppure salvalo prima come testo semplice o CSV. Un file di un tipo chiaramente diverso viene di solito rifiutato prima, con un messaggio come "report.docx è un file DOCX, che questo strumento non può aprire."
Dice "0 corrispondenze trovate" anche se il testo è chiaramente presente.
Controlla, in quest'ordine: la ricerca distingue tra maiuscole e minuscole a meno che "Ignora maiuscole/minuscole" non sia spuntato; "Parola intera" è spuntato e il testo si trova all'interno di una parola più lunga; "Espressione regolare" è spuntato e un carattere come . o ( agisce come schema; oppure gli spazi, le tabulazioni e le interruzioni di riga nel tuo testo non sono quelli che hai digitato. Il conteggio si aggiorna una frazione di secondo dopo che smetti di digitare, quindi attendi un attimo dopo una modifica.
La sostituzione mostra $1 o $& così come digitato invece del testo corrispondente.
I riferimenti come $1 funzionano solo con "Espressione regolare" spuntato, e solo quando "Trova" contiene un gruppo di cattura tra parentesi, per esempio (\d+). Con la casella deselezionata ogni $ viene inserito esattamente come digitato. Se lo schema non ha un primo gruppo, JavaScript lascia anche $1 come testo semplice.
Ho digitato \n in "Sostituisci con" e ho ottenuto una barra rovesciata e una n invece di un'interruzione di riga.
"Sostituisci con" è un riquadro a riga singola e non trasforma \n in un'interruzione di riga, quindi inserisce i due caratteri. In "Trova", con "Espressione regolare" spuntato, \n e \r?\n corrispondono alle interruzioni di riga, ed è così che funzionano "Rimuovi interruzioni di riga" e "Rimuovi righe vuote". Un'interruzione di riga non può essere digitata nella sostituzione, quindi per aggiungere interruzioni di riga usa un editor di testo che lo supporti.

Come si confronta

Un elaboratore di testi o un editor di codice scorre le corrispondenze una alla volta, modifica il documento sul posto, può lavorare su molti file e offre la funzione annulla. Questa pagina fa l'opposto: sostituisce ogni corrispondenza in una volta sola in una copia del tuo testo, mostra prima un conteggio in tempo reale e le corrispondenze evidenziate, e lascia il tuo originale nel primo riquadro finché non lo modifichi. Le sue espressioni regolari sono quelle di JavaScript, che differiscono nei dettagli dalle varianti di altri editor e strumenti a riga di comando. Per esempio, i gruppi con nome si scrivono (?<name>...) e non (?P<name>...), non ci sono ancore per riga e un'interruzione di riga non può essere digitata nella sostituzione. È adatta a un blocco di testo incollato o a un file di log o CSV; per un'intera cartella di file, usa un editor o uno script.

Strumenti correlati

Domande frequenti