Comparador de Texto (Verificador de Diferenças)

Cole dois textos e veja exatamente quais linhas foram adicionadas, removidas ou permaneceram inalteradas — um diff linha a linha, direto no seu navegador.

1.156 visualizações

Como Funciona a Comparação

A ferramenta divide os dois textos em linhas e executa um algoritmo de Subsequência Comum Mais Longa (LCS) — a mesma lógica central usada pelo Git e pelos editores de código na visualização "diff". Em vez de comparar linhas por posição (linha 1 com linha 1, linha 2 com linha 2), o LCS encontra a sequência mais longa de linhas que aparece, na mesma ordem, em ambos os documentos. Tudo o que está dentro dessa sequência compartilhada é marcado como inalterado; o que sobra no texto original é marcado como removido, e o que sobra no texto revisado é marcado como adicionado.

Essa distinção importa porque uma comparação posicional simples quebra no momento em que uma única linha é inserida ou removida perto do início de um documento — cada linha depois dela pareceria diferente, mesmo que nada tenha realmente mudado além dessa linha. Exemplo concreto: se o original for "A / B / C / D" e o texto revisado for "A / X / B / C / D", uma comparação simples linha a linha marcaria B, C e D como todos alterados, já que cada um deslocou uma posição. O LCS, em vez disso, reconhece que A, B, C e D ainda aparecem na mesma ordem relativa em ambos os textos, então relata corretamente apenas uma adição — a nova linha X — e marca o restante como inalterado.

O Que Você Precisa Saber

  • Baseado em linhas, não em palavras: a comparação opera em linhas inteiras. Alterar uma única palavra dentro de uma linha longa ainda marca essa linha inteira como uma removida mais uma adicionada — a convenção padrão em diffs de código e documentos, pois mantém o resultado fácil de acompanhar.
  • Espaços e maiúsculas/minúsculas contam: um espaço no final ou uma letra com caixa diferente faz com que duas linhas por outro lado idênticas sejam registradas como diferentes — vale a pena normalizar seu texto primeiro se essa não for a comparação que você deseja.
  • Conteúdo reordenado é correspondido corretamente: como o LCS busca a sequência comum mais longa em vez de posições exatas, um parágrafo que foi movido para outro lugar mas manteve sua ordem interna de linhas é reconhecido como inalterado, e não como um par de remoção e adição.
  • Documentos grandes funcionam bem: o algoritmo lida com milhares de linhas confortavelmente; arquivos extremamente grandes (dezenas de milhares de linhas) podem levar um pouco mais de tempo para o navegador alinhar, mas nada é enviado — o processamento permanece local o tempo todo.

A mesma técnica sustenta o estilo de revisão "controle de alterações" fora da programação também: uma equipe jurídica comparando dois rascunhos de uma cláusula contratual, um editor verificando exatamente o que um coautor reescreveu em um capítulo, ou um tradutor confirmando quais frases mudaram entre duas versões localizadas de um documento. Como o algoritmo só se importa com a sequência das linhas, não com o que elas significam, ele funciona igualmente bem em código-fonte, arquivos de configuração, poesia ou uma planilha exportada como texto simples.

Perguntas Frequentes

Compara palavra por palavra ou linha por linha?

Linha por linha — o padrão para documentos e código, já que corresponde à forma como a maioria dos editores e ferramentas de controle de versão já pensa sobre um arquivo. Uma linha modificada, portanto, aparece como uma removida mais uma adicionada, em vez de um emaranhado de destaques no nível de palavras, o que mantém o resultado fácil de acompanhar mesmo em documentos longos.

Existe um limite de tamanho?

O algoritmo lida com milhares de linhas confortavelmente, o que cobre a grande maioria de contratos, artigos e arquivos de código-fonte. Para arquivos muito grandes (dezenas de milhares de linhas), o navegador pode levar um pouco mais de tempo para calcular o alinhamento — o trabalho permanece inteiramente no seu dispositivo de qualquer forma, então não há atraso de upload para esperar.

Meus documentos são enviados?

Não. Ambos os textos são comparados localmente no seu navegador usando JavaScript, e tanto a entrada quanto o resultado desaparecem no momento em que você fecha ou atualiza a página — nada é armazenado ou transmitido.

Como lida com linhas que foram movidas ou reordenadas?

Como o algoritmo LCS corresponde à sequência mais longa comum a ambos os textos, independentemente da posição, um parágrafo que foi movido mas manteve sua ordem interna de linhas ainda aparece como inalterado, em vez de um falso par de remoção e adição. Somente linhas que realmente diferem em conteúdo ou posição relativa são marcadas.

Por que alterar uma palavra mostra duas linhas como alteradas?

O diff compara linhas inteiras, não palavras individuais. Editar uma palavra dentro de uma linha faz com que essa linha inteira conte como uma linha removida (a versão antiga) mais uma linha adicionada (a versão nova) — o mesmo comportamento visto no Git ou em ferramentas de revisão de código, mantendo o resultado visual consistente não importa quão pequena tenha sido a edição dentro da linha.

Comentários

Ainda não há comentários — seja o primeiro a escrever um!

Ferramentas Semelhantes