Texto

Como localizar e substituir texto sem quebrar nada

Leia as correspondências antes de confirmar, e o substituir tudo deixa de ser o que custa uma tarde.

Faça a busca antes da substituição. Digite o que você está procurando, leia a lista de correspondências e só então decida o que entra no lugar delas — quase todo desastre de substituir tudo é alguém que pulou esse passo. O resto é mecânico: estreite o padrão até sobrarem só as ocorrências que você queria, guarde o texto original em algum lugar de onde dê para recuperá-lo e depois confira se a contagem de caracteres mudou mais ou menos o que você previu.

O que eu devo conferir antes de substituir qualquer coisa?

A quantidade de correspondências e, em seguida, as próprias correspondências. Um substituir tudo é uma única decisão aplicada a todas as correspondências de uma vez, e a lista é onde você as vê antes de tomá-la.

É essa a parte que vale a pena usar na ferramenta de localizar e substituir daqui: cada correspondência aparece com o número da linha e da coluna e o texto dos dois lados, atualizada enquanto você digita, e a versão editada vai para uma caixa separada, só de leitura. O texto que você colou continua intacto na caixa de entrada até você apertar Usar o resultado como entrada, então sobrescrever o original é um clique deliberado, e não um efeito colateral de digitar. A lista em si vai só até as 100 primeiras correspondências; o contador continua além disso. Se ele disser 4000 e você esperava 40, pare e conserte o padrão.

Por que ele substituiu mais do que eu pedi?

Sua palavra mora dentro de outras palavras

Substituir cat por dog também edita category, concatenate e vacation. Essa é a forma mais comum de um substituir tudo dar errado, e é invisível num documento longo porque o estrago fica espalhado por palavras em que você nunca pensou.

Somente palavras inteiras envolve o seu padrão num limite de palavra e dá conta do caso comum. Saiba onde ele falha antes de confiar nele: o limite só conta as letras de A a Z, os dígitos e o sublinhado como caracteres de palavra. Procurar café como palavra inteira não acha nenhuma ocorrência normal, porque é não é um caractere de palavra e um espaço ou um ponto depois dele também não é, então não existe limite entre os dois. Para piorar, o mesmo padrão corresponde sim dentro de cafés, onde o s fornece o limite que o espaço não conseguiu dar. Os hífens falham na direção oposta — up como palavra inteira ainda corresponde dentro de follow-up, já que o hífen é lido como separador. Para palavras acentuadas, apóstrofos ou qualquer coisa fora do ASCII simples, desligue a opção e coloque você mesmo o contexto ao redor no termo de busca.

Ignorar maiúsculas e minúsculas joga as maiúsculas fora

Marque Ignorar maiúsculas e minúsculas para pegar Color, color e COLOR numa passada só, e as três saem exatamente como você digitou no campo Substituir por. A maiúscula do começo da frase some e nada avisa. Aqui não existe substituição que preserve as maiúsculas, nem jeito de passar um grupo de captura para maiúsculas — o GNU sed tem \U para isso, as strings de substituição do JavaScript não têm equivalente, e esta ferramenta é JavaScript. Quando as maiúsculas importam, faça duas passadas com Ignorar maiúsculas desligado: uma para a forma em minúsculas, outra para a que leva inicial maiúscula.

Por que ele não acha uma palavra que está claramente ali?

Porque o que está na tela não é o que está no texto. Quatro culpados frequentes:

Os dois primeiros são os que comem a hora, porque não há nada para ver. Os caracteres invisíveis que quebram o seu texto mostra de onde eles vêm e como torná-los visíveis. Para a quebra de linha, deixe Ler \n e \t como escapes marcado e digite \n no campo Localizar: um campo de uma linha só não consegue guardar uma quebra de linha de verdade, então a sequência de escape é o único jeito de pedir uma.

Como eu troco duas palavras sem perder as duas?

Você quer que todo Alice vire Bob e todo Bob vire Alice. Faça as duas substituições uma depois da outra e você termina com um documento cheio de Alices. A primeira passada transforma todas as Alices em Bobs; a segunda transforma em Alice tudo que se chama Bob — os originais e os que você acabou de criar.

A saída é um marcador que ninguém digitaria nunca. Substitua Alice por @@SWAP@@, depois Bob por Alice, depois @@SWAP@@ por Bob. Três passadas, nenhuma colisão. A mesma armadilha pega qualquer sequência em que a saída de uma substituição é a entrada de outra mais adiante, o que é a maioria dos trabalhos de "arrumar a terminologia" e toda renomeação que toca dois nomes parecidos.

Dentro de uma passada só você está seguro: o texto é percorrido uma vez e o resultado é escrito em outro lugar, então substituir a por aa termina em vez de entrar em loop para sempre. São as passadas encadeadas que devolvem uma substituição para a busca seguinte.

O que dá errado assim que você liga as expressões regulares?

O modo literal escapa todo caractere que um motor de regex trataria como uma instrução, então price (USD) procura exatamente isso. Marque Expressão regular e o escape para de acontecer. Três coisas pegam você na hora:

Mais uma, mais rara mas pior: a repetição aninhada, como (a+)+b, pode levar tempo exponencial com a entrada errada. A aba para de responder e a única saída é fechá-la, perdendo o que estivesse na caixa. Nada é guardado e nada é enviado, o que é a vantagem de privacidade e a desvantagem de recuperação ao mesmo tempo.

Como eu confiro o que mudou de verdade?

Preveja o número antes de olhar para ele. A ferramenta mostra os caracteres antes e os caracteres depois, então, se você está substituindo uma palavra de 5 caracteres por uma de 7 ao longo de 12 correspondências, a contagem deve subir exatamente 24. Quando não sobe, a diferença é o diagnóstico: grande demais e o seu padrão está pegando mais do que você pensa, pequena demais e algumas das correspondências eram uma variante que você não previu.

Para qualquer coisa mais longa que uma tela, leia a mudança em vez do número. Cole o original de um lado de um comparador de textos e o resultado do outro, e toda linha alterada fica marcada. Isso leva cerca de um minuto e é o único passo que pega uma substituição que estava tecnicamente certa em todo lugar e errada em um só — a frase em que o seu termo aparecia como parte de um nome mais longo, ou o bloco de código que você não queria tocar. Comparar duas versões de um texto passa por como ler um diff direito, incluindo por que mudanças só de espaço em branco encobrem todo o resto.

Dá para recuperar o texto original?

Só se você guardou uma cópia. Esta ferramenta não tem desfazer, nem um script que já escreveu os arquivos, nem o editor que você fechou sem salvar. A caixa de resultado é refeita do zero a cada tecla, então a entrada fica segura até você sobrescrevê-la — mas, uma vez que você apertou Usar o resultado como entrada, a versão anterior não existe em lugar nenhum.

Então, antes de uma substituição da qual você não tem certeza, coloque o original em outro lugar: uma segunda aba, um arquivo de rascunho, um commit. Custa cinco segundos e é a diferença entre um padrão errado ser um aborrecimento e um padrão errado ser uma tarde inteira de redigitação.

A ferramenta de localizar e substituir roda inteiramente no seu navegador, que é por isso que a lista de correspondências aparece enquanto você digita e por isso que nada do que você cola nela sai da sua máquina; use essa lista, e não o campo Substituir por, para decidir se o padrão está certo. O hábito que vale a pena criar em volta disso é deixar o texto original guardado em outro lugar antes de sobrescrevê-lo. Fazer anotações sem criar conta cobre o espaço de rascunho que vive só no navegador para exatamente isso — um lugar para largar uma cópia sem criar um documento nem entrar em nada.

Perguntas frequentes

Como eu localizo e substituo texto com segurança?

Procure primeiro e leia a lista de correspondências antes de digitar qualquer coisa no campo de substituição. Estreite o padrão até a contagem de correspondências ser o número que você esperava, guarde uma cópia do texto original em outro lugar, e então substitua e confirme que a contagem de caracteres mudou o quanto você tinha previsto.

Como eu substituo uma palavra sem que ela corresponda dentro de outras palavras?

Ligue "somente palavras inteiras", que exige um limite de palavra dos dois lados do seu termo para que "cat" não corresponda mais dentro de "category". O limite só reconhece as letras de A a Z, os dígitos e o sublinhado como caracteres de palavra, então um termo terminado em letra acentuada, como "café", não acha nada quando vem um espaço ou um ponto depois. Nesses casos, desligue a opção e inclua no termo de busca os espaços ou a pontuação ao redor.

Por que não acho uma palavra que com certeza está no texto?

Geralmente porque os caracteres não são os que você digitou. Os apóstrofos curvos do Word não correspondem aos retos, e um espaço não separável parece idêntico a um espaço normal mas é um caractere diferente. Um espaço sobrando copiado para dentro da caixa de busca e uma quebra de linha fixa no meio da frase causam a mesma falha silenciosa.

Dá para desfazer um localizar e substituir?

Não numa ferramenta de navegador que não guarda histórico, e nem num script que já escreveu os arquivos. Ferramentas que rodam no navegador normalmente mostram o resultado numa caixa separada, então o original sobrevive até você sobrescrevê-lo de propósito. Copie o original para outro lugar antes de qualquer substituição da qual você não tenha certeza.

Como eu troco duas palavras com localizar e substituir?

Use três passadas e um marcador, não duas passadas. Substitua a primeira palavra por um token que ninguém digitaria, substitua a segunda palavra pela primeira e depois substitua o token pela segunda. Fazer isso em duas passadas transforma todas as ocorrências das duas palavras na mesma palavra.

Última atualização 19 de setembro de 2026