Texto

Text Diff

Comparação de dois textos linha por linha — o que foi adicionado, removido ou alterado, com destaque em nível de palavra nas linhas alteradas.


                        
                    

Text Diff compares two texts line by line and shows what was added, removed, or changed, with word-level highlighting inside changed lines — much like git diff, but without a command line.

How to use it

Common uses

Things to keep in mind

By default a whitespace-only change (like indentation) still counts as a difference, since it technically changes the line's content.

The diff compares lines by position, so adding or removing a single line near the top can shift how the rest of the text lines up.

Artigo sobre esta ferramenta: Text Diff: como os algoritmos encontram a diferença entre dois textos

Perguntas frequentes

Como a comparação é calculada?

A comparação acontece linha por linha: cada linha é identificada como adicionada, removida ou alterada, e dentro das linhas alteradas, as palavras exatas que diferem são destacadas.

Como adições, remoções e alterações são exibidas?

Linhas adicionadas e removidas são marcadas como tal no resultado, e linhas alteradas mostram destaque em nível de palavra para identificar imediatamente o que mudou sem reler a linha inteira.

Meus dois textos são enviados a um servidor?

Não, a comparação é executada inteiramente no navegador em JavaScript — nenhum conteúdo é enviado a lugar nenhum.

Por que inserir uma única linha faz com que todas as seguintes apareçam como alteradas?

O algoritmo nem sempre reconhece com precisão que se trata de uma inserção, e não de uma substituição em massa — especialmente se as linhas ao redor forem parecidas entre si. Bons algoritmos de diff tentam minimizar esses falsos positivos buscando a maior subsequência comum, mas o resultado nem sempre é perfeito.

Espaços em branco são considerados na comparação?

Sim, por padrão uma mudança apenas em espaços em branco (por exemplo, na indentação) também é marcada como diferença, já que tecnicamente é uma alteração no conteúdo da linha.

Artigos: Texto

Case Converter: por que existem estilos de nomenclatura diferentes

Por que um mesmo projeto escreve variáveis em camelCase mas arquivos em kebab-case, e de onde vêm essas regras.

Expressões regulares: sintaxe básica e padrões comuns

Como ler uma expressão regular e em que a correspondência gananciosa difere da preguiçosa.

Ordenar e remover linhas duplicadas: para que serve

Por que uma ordenação numérica que coloca "10" antes de "9" é um erro, e como evitá-lo.

String Escape: por que o mesmo texto precisa ser escapado de forma diferente

Por que a mesma aspa é escapada de forma diferente numa string JS, em JSON e num comando shell.

CRLF contra LF: por que os caracteres de fim de linha ainda importam

Por que um arquivo escrito no Windows pode aparecer como "totalmente alterado" no git em Linux.

Contar caracteres e palavras: por que nem sempre é trivial

Por que um emoji ou uma letra acentuada podem contar como vários caracteres de uma vez.

Lorem Ipsum: de onde vem o texto de preenchimento e para que serve

Por que os designers usam deliberadamente texto "sem sentido" em vez de conteúdo real em mockups.

Slugify: como transformar qualquer texto numa URL

Como um título como "Olá, Mundo!" se transforma numa string compatível com URL como ola-mundo.

Markdown: por que uma sintaxe de texto simples venceu editores ricos

Por que desenvolvedores preferem escrever documentação em Markdown em vez de num editor de texto rico.

Espaços e caracteres invisíveis: a causa oculta de bugs estranhos

Por que duas strings aparentemente idênticas podem não coincidir por causa de um caractere invisível.

Text Reverse: por que "inverter um texto" é mais difícil do que parece

Por que uma inversão ingênua de string pode transformar um emoji em bytes inutilizáveis.

Análise de frequência de texto: para que serve contar repetições de palavras

Como a frequência das letras num texto cifrado ajuda a quebrar as cifras de substituição mais simples.