Comparaison de texte (vérificateur de différences)

Collez deux textes et voyez exactement quelles lignes ont été ajoutées, supprimées ou inchangées — une différence ligne par ligne bien claire dans votre navigateur.

1 155 vues

Comment fonctionne la comparaison

L'outil découpe les deux textes en lignes et exécute un algorithme de plus longue sous-séquence commune (LCS) — la même logique de base qu'utilisent Git et les éditeurs de code pour leur vue « diff ». Au lieu de comparer les lignes par position (ligne 1 contre ligne 1, ligne 2 contre ligne 2), le LCS trouve la plus longue séquence de lignes qui apparaît, dans le même ordre, dans les deux documents. Tout ce qui se trouve dans cette séquence commune est marqué inchangé ; ce qui reste dans l'original est marqué supprimé, et ce qui reste dans le texte révisé est marqué ajouté.

Cette distinction compte car une comparaison positionnelle naïve se brise dès qu'une seule ligne est insérée ou supprimée près du début d'un document — chaque ligne suivante semblerait différer, alors que rien n'a réellement changé à part cette seule ligne. Exemple concret : si l'original contient « A / B / C / D » et le texte révisé « A / X / B / C / D », une comparaison ligne par ligne naïve signalerait B, C et D comme tous modifiés, puisqu'ils ont chacun décalé d'une position. Le LCS reconnaît au contraire que A, B, C et D apparaissent toujours dans le même ordre relatif dans les deux textes, et ne signale donc correctement qu'un seul ajout — la nouvelle ligne X — en marquant le reste comme inchangé.

Ce qu'il faut savoir

  • Basé sur les lignes, pas sur les mots : la comparaison opère sur des lignes entières. Modifier un seul mot dans une longue ligne marque toujours cette ligne entière comme une ligne supprimée plus une ligne ajoutée — la convention standard dans la comparaison de code et de documents, car cela garde le résultat facile à parcourir.
  • Les espaces et la casse comptent : une espace en fin de ligne ou une casse différente fait apparaître deux lignes autrement identiques comme différentes — normalisez d'abord votre texte si ce n'est pas la comparaison que vous souhaitez.
  • Le contenu réordonné est correctement associé : comme le LCS cherche la plus longue séquence commune plutôt que des positions exactes, un paragraphe déplacé ailleurs mais ayant conservé l'ordre interne de ses lignes est reconnu comme inchangé plutôt que comme une paire suppression-puis-ajout.
  • Les documents volumineux passent bien à l'échelle : l'algorithme gère confortablement des milliers de lignes ; les fichiers extrêmement volumineux (dizaines de milliers de lignes) peuvent demander un instant de plus au navigateur pour l'alignement, mais rien n'est jamais téléversé — le calcul reste local en permanence.

La même technique sous-tend le style de révision « suivi des modifications » en dehors de la programmation aussi : une équipe juridique comparant deux versions d'une clause contractuelle, un éditeur vérifiant exactement ce qu'un coauteur a réécrit dans un chapitre, ou un traducteur confirmant quelles phrases ont changé entre deux versions localisées d'un document. Comme l'algorithme ne s'intéresse qu'à la séquence des lignes, pas à leur signification, il fonctionne tout aussi bien sur du code source, des fichiers de configuration, de la poésie ou une feuille de calcul exportée en texte brut.

Questions fréquentes

La comparaison se fait-elle mot par mot ou ligne par ligne ?

Ligne par ligne — la norme pour les documents et le code, car cela correspond à la façon dont la plupart des éditeurs et des outils de contrôle de version envisagent déjà un fichier. Une ligne modifiée apparaît donc comme une ligne supprimée plus une ligne ajoutée plutôt qu'un enchevêtrement de mises en évidence au niveau des mots, ce qui garde le résultat facile à parcourir même dans de longs documents.

Y a-t-il une limite de taille ?

L'algorithme gère confortablement des milliers de lignes, ce qui couvre la grande majorité des contrats, articles et fichiers source. Pour les fichiers très volumineux (dizaines de milliers de lignes), le navigateur peut prendre un instant de plus pour calculer l'alignement — le travail reste entièrement sur votre appareil dans tous les cas, donc il n'y a aucun délai de téléversement à attendre.

Mes documents sont-ils téléversés ?

Non. Les deux textes sont comparés localement dans votre navigateur en JavaScript, et l'entrée comme le résultat disparaissent dès que vous fermez ou actualisez la page — rien n'est stocké ni transmis.

Comment gère-t-il les lignes qui ont été déplacées ou réordonnées ?

Comme l'algorithme LCS associe la plus longue séquence commune aux deux textes indépendamment de la position, un paragraphe qui a été déplacé mais a conservé l'ordre interne de ses lignes s'affiche toujours comme inchangé plutôt que comme une fausse paire suppression-ajout. Seules les lignes qui diffèrent réellement en contenu ou en position relative sont signalées.

Pourquoi changer un seul mot fait-il apparaître deux lignes comme modifiées ?

Le diff compare des lignes entières, pas des mots individuels. Modifier un mot à l'intérieur d'une ligne fait compter cette ligne entière comme une ligne supprimée (l'ancienne version) plus une ligne ajoutée (la nouvelle version) — le même comportement que vous observez dans Git ou les outils de revue de code, ce qui garde le résultat visuel cohérent quelle que soit la taille de la modification à l'intérieur de la ligne.

Commentaires

Pas encore de commentaires — soyez le premier à en écrire un !

Outils similaires