Saltar para o conteúdo principal
LibraTool logoLibraTool

Localizar e Substituir Texto grátis

Pesquise e substitua texto com correspondência simples ou regex, contagem de correspondências ao vivo e pré-visualização destacada. Suporta insensibilidade a maiúsculas, palavra inteira e referências de grupo de captura regex.

Funciona offline depois de carregado
Limpezas rápidas
Insira um termo de pesquisa para começar

💡 No modo regex, use grupos de captura em Localizar como (\d{4})-(\d{2}) e referencie-os em Substituir com $1, $2 — ideal para reformatar datas, nomes ou IDs em lote.

Usos comuns

  • Localizar e Substituir Texto em LoteSubstitua todas as ocorrências de uma palavra ou frase em um bloco de texto de uma vez.
  • Localizar e Substituir com Expressões RegularesUse expressões regulares com grupos de captura para reformatar texto em lote.
  • Localizar e Substituir em CódigoRenomeie variáveis ou reescreva padrões em um snippet rapidamente.
  • Limpar Dados BagunçadosRemova ou normalize caracteres soltos, delimitadores e formatação em dados colados.
  • Substituir Palavras Enquanto EscreveTrocar uma palavra repetida ou renomear um personagem ao longo de um rascunho.

Como funciona

Localizar e Substituir funciona inteiramente no seu navegador usando o motor RegExp integrado do JavaScript — sem biblioteca, sem servidor, sem envio. O texto é processado localmente no momento em que escreve, usando String.prototype.matchAll para contagem e String.prototype.replace para substituição.

  1. 1
    Padrão compilado para RegExp
    Enquanto você digita, o termo de pesquisa é compilado numa RegExp de JavaScript com um debounce de 150 ms para que padrões patológicos não travem a aba a cada tecla. No modo de texto simples cada metacaractere de regex é primeiro escapado, para que pontos e colchetes literais sejam tratados como literais. Ativar o modo Regex passa seu padrão diretamente. O modo palavra inteira envolve o padrão em âncoras de fronteira de palavra \b(?:...)\b, e o modo sem distinção entre maiúsculas e minúsculas adiciona a flag i.
  2. 2
    Uma passagem única de matchAll conta e destaca
    Uma chamada matchAll sobre o texto com debounce produz cada objeto de correspondência. A contagem de correspondências é lida diretamente do comprimento desse array. Para textos com menos de 200.000 caracteres, uma pré-visualização destacada é construída percorrendo os desvios de correspondência e envolvendo cada acerto numa tag <mark> — o escape de HTML é aplicado aos segmentos de texto bruto antes da injeção, não depois, para que correspondências contendo &, <, ou > sejam tratadas corretamente.
  3. 3
    Substituir por texto literal ou retro-referências de grupo de captura
    A saída é produzida por String.prototype.replace com a flag global, substituindo cada correspondência de uma vez. No modo de texto simples, qualquer $ na string de substituição é duplicado para $$ para que caracteres como $& e $1 sejam inseridos literalmente em vez de interpretados como retro-referências. No modo Regex, $1, $2, etc. funcionam como substituições padrão de grupo de captura do JavaScript.
  4. 4
    Copie ou baixe o resultado
    O texto reescrito aparece numa textarea somente leitura enquanto você digita. Copiar usa a API navigator.clipboard.writeText do navegador. Baixar constrói um Blob do tipo text/plain de forma síncrona e aciona um salvamento local — nada sai do seu dispositivo em qualquer momento.

Guia

Exemplo prático

Imagine uma lista com datas no formato ano-mês-dia e você precisa do formato dia-mês-ano. Cole "Invoice 2026-11-04 due 2026-12-15" em "Seu texto", marque "Expressão regular", digite (\d{4})-(\d{2})-(\d{2}) em "Buscar" e $3/$2/$1 em "Substituir por". A linha abaixo das caixas mostra "2 correspondências encontradas", ambas as datas são destacadas e o "Resultado" exibe "Invoice 04/11/2026 due 15/12/2026". Com a caixa desmarcada, o mesmo texto é buscado literalmente, então uma busca por . em a.b.c encontra 2 correspondências (os pontos), enquanto com a caixa marcada encontra 5, porque . passa a significar qualquer caractere. A limpeza rápida "Compactar espaços múltiplos" transforma "a b c d" em "a b c d" (3 correspondências).

Quais configurações usar e os limites

  • Comece com texto simples. Com "Expressão regular" desmarcado, o que você digita em "Buscar" é procurado exatamente como foi escrito, e um $ em "Substituir por" é inserido como um cifrão comum. Marque a caixa apenas quando precisar de padrões como dígitos, partes opcionais ou grupos.
  • Verifique as opções de maiúsculas/minúsculas e palavra inteira. A correspondência diferencia maiúsculas de minúsculas, a menos que "Ignorar maiúsculas/minúsculas" esteja marcado, então "cat" não encontra "Cat". "Palavra inteira" impede que "cat" corresponda dentro de "concatenate" e "category". Também funciona para palavras acentuadas como café e para textos em chinês e japonês, onde cada borda de caractere conta como borda de palavra. Em "cat concatenate Cat category cat.", uma busca simples por cat encontra 4, e ignorando maiúsculas/minúsculas mais palavra inteira encontra 3.
  • No modo regex, atenção às âncoras de linha. Os padrões usam a sintaxe de expressão regular do JavaScript. Não há opção multilinha, então ^ e $ correspondem apenas ao início e ao fim de todo o texto, não de cada linha, e . não cruza uma quebra de linha. Para ancorar em cada linha, use (?<=^|\n) para início de linha e (?=\r?\n|$) para fim de linha. Grupos de captura em "Buscar" retornam como $1, $2 em "Substituir por".
  • Use as limpezas rápidas. Em "Limpezas rápidas" há dez predefinições de um clique: "Corrigir aspas duplas", "Corrigir aspas simples", "Compactar espaços múltiplos", "Remover quebras de linha", "Tabs para espaços" (quatro espaços), "Remover espaços no final das linhas", "Remover linhas vazias" e três para textos em chinês e japonês que convertem caracteres de meia-largura, convertem pontuação para largura total e removem espaços entre caracteres. Uma predefinição preenche Buscar e Substituir e marca "Expressão regular". As duas predefinições que convertem caracteres param de converter assim que você edita qualquer uma das caixas.
  • Carregue um arquivo em vez de colar. "Carregar um arquivo de texto" abre arquivos .txt, .csv, .log e .md, ou outros arquivos de texto, e os lê no seu navegador. Um arquivo que parece binário é recusado, e um arquivo de um tipo claramente diferente, como DOCX ou PDF, é rejeitado com uma mensagem informando seu tipo. "Baixar .txt" salva o resultado com o nome e a extensão originais do arquivo, então pedidos.csv permanece pedidos.csv; para texto colado, o arquivo se chama buscar-substituir-resultado.txt.
  • Espere uma pausa em textos muito grandes. Os resultados são atualizados cerca de 0,15 segundos depois que você para de digitar, 0,35 segundos quando o texto ultrapassa 200.000 caracteres e 0,7 segundos após 1.000.000. Acima de 200.000 caracteres, a pré-visualização com destaque é desligada e a página informa "Pré-visualização com destaque desativada para textos muito grandes - o resultado abaixo ainda está atualizado." A contagem de correspondências e o resultado continuam funcionando. A ferramenta não verifica o tamanho do arquivo em si, então um arquivo muito grande é limitado pela memória do seu navegador.

Problemas comuns e como resolvê-los

Aparece "Regex inválida".
Seu padrão não é uma sintaxe de expressão regular válida. Isso geralmente acontece quando "Expressão regular" está marcado enquanto você busca por texto comum que contém símbolos como ( [ * + ? ou uma barra invertida. No Chrome, por exemplo, C++ gera "Nothing to repeat", [abc gera "Unterminated character class" e um ( sozinho gera "Unterminated group". Desmarque a caixa para buscar o texto literalmente ou coloque uma barra invertida antes de cada símbolo, como em C\+\+. Abra "Detalhes" para ver a mensagem do próprio navegador; o texto varia conforme o navegador e é exibido em inglês.
Aparece "Não foi possível ler esse arquivo. Escolha um arquivo de texto simples (.txt, .csv, .log, .md)."
O arquivo parece binário: seus primeiros 4.096 caracteres contêm um caractere NUL, como em um arquivo do Word, Excel ou PDF renomeado para .txt, ou o navegador não conseguiu lê-lo. Abra o original no programa dele e copie o texto, ou salve-o antes como texto simples ou CSV. Um arquivo de um tipo claramente diferente costuma ser recusado antes, com uma mensagem como "relatorio.docx é um arquivo DOCX, que esta ferramenta não pode abrir."
Aparece "0 correspondências encontradas" embora o texto esteja claramente ali.
Verifique, nesta ordem: a correspondência diferencia maiúsculas de minúsculas, a menos que "Ignorar maiúsculas/minúsculas" esteja marcado; "Palavra inteira" está marcado e o texto está dentro de uma palavra maior; "Expressão regular" está marcado e um caractere como . ou ( está agindo como um padrão; ou os espaços, tabs e quebras de linha no seu texto não são o que você digitou. A contagem é atualizada uma fração de segundo depois que você para de digitar, então aguarde um momento após uma alteração.
A substituição mostra $1 ou $& como digitado, em vez do texto correspondente.
Referências como $1 só funcionam com "Expressão regular" marcado, e apenas quando "Buscar" contém um grupo de captura entre parênteses, por exemplo (\d+). Com a caixa desmarcada, cada $ é inserido exatamente como digitado. Se o padrão não tiver um primeiro grupo, o JavaScript também deixa $1 como texto simples.
Digitei \n em "Substituir por" e obtive uma barra invertida e um n em vez de uma quebra de linha.
"Substituir por" é uma caixa de linha única e não converte \n em quebra de linha, então insere os dois caracteres. Em "Buscar", com "Expressão regular" marcado, \n e \r?\n correspondem a quebras de linha, que é como "Remover quebras de linha" e "Remover linhas vazias" funcionam. Uma quebra de linha não pode ser digitada na substituição, então, para adicionar quebras de linha, use um editor de texto que ofereça suporte a isso.

Como se compara

Um processador de texto ou editor de código percorre as correspondências uma a uma, edita o documento no local, pode trabalhar em vários arquivos e oferece desfazer. Esta página faz o oposto: substitui todas as correspondências de uma vez em uma cópia do seu texto, mostra primeiro uma contagem ao vivo e correspondências destacadas, e deixa seu original na primeira caixa até que você o altere. Suas expressões regulares são as do JavaScript, que diferem em detalhes das variantes de outros editores e ferramentas de linha de comando. Por exemplo, grupos nomeados são escritos (?<name>...) e não (?P<name>...), não há âncoras por linha e uma quebra de linha não pode ser digitada na substituição. É adequado para um bloco de texto colado ou um arquivo de log ou CSV; para uma pasta inteira de arquivos, use um editor ou um script.

Ferramentas relacionadas

Perguntas frequentes