テキスト比較

2つのテキストを比較し、追加・削除された行や単語を色分けして表示する無料の差分チェックツールです。テキストはアップロードされません。

2つのテキストを比較する方法

  1. 左の元のテキストに以前の版を、右の変更後のテキストに新しい版を貼り付けます。
  2. 行か単語を選びます。入力が止まって少しすると自動で比較され、比較をクリックすればすぐに比較します。
  3. 2行追加、1行削除のような要約を確認し、強調表示された結果を見ていきます。違いがなければ違いは見つかりませんでしたと表示されます。

結果の見方

行モードの結果は表で表示されます。1つ目の番号の列は元のテキストの行番号、2つ目は変更後のテキストの行番号で、記号の列には削除された行(赤)に−、追加された行(緑)に+が付きます。変わっていない行には両方の番号が表示されます。行単位で見ると修正は「削除+追加」の組なので、書き換えた行は、削除された行のすぐ後に追加された行が続く形で表示されます。

単語モードでは、変更後のテキストが文章のまま表示され、削除された語は赤の取り消し線で、追加された語は緑で、その位置に示されます。テキストは単語、記号1つずつ、連続する空白の単位に分けられます。空白だけの変更は強調表示されますが、要約の件数には含まれません。

行と単語、どちらを選ぶか

  • 行は、ソースコード、設定ファイル、CSVデータ、リストなど、1行1行が意味のまとまりになっているテキストに向いています。
  • 単語は、契約書、エッセイ、記事、チェック中の翻訳文などのふつうの文章に向いています。長い段落は1行なので、行モードでは1語直しただけでも段落全体が変わったと表示されてしまうからです。

大文字と小文字を区別しない・空白を無視

大文字と小文字を区別しないは、「Hello World」と「hello world」を同じとみなします。空白を無視はモードによって少し動きが違います。行モードでは、比べる前に両方の行から空白をすべて取り除くため、字下げ、行末の空白、行内のスペースの違いまで無視します。abとa bも同じとみなされます。単語モードでは、連続するスペース、タブ、改行をすべて同じものとみなすので、改行位置が変わっただけの文章は変更なしと表示されます。

例

設定ファイルの変更。元のテキストがhost=localhost、port=8080、debug=trueの3行で、変更後はポートを9090に変え、最後にtimeout=30を追加したとします。行モードでは2行目の削除、新しい2行目の追加、新しい4行目の追加と表示され、要約は2行追加、1行削除です。

英文の修正。「The quick brown fox jumps over the lazy dog.」と「The quick red fox leaped over the lazy dog.」を単語モードで比べると、brown → red、jumps → leapedが強調され、2語追加、2語削除となります。行モードでは、同じ内容が単に1行削除、1行追加です。

日本語の文章。日本語には単語の間にスペースがないため、単語モードでは句読点から句読点までが1つの「単語」として扱われます。「私は昨日、東京で友達に会いました。」と「私は昨日、大阪で友達に会いました。」を比べると、変わったのは2文字だけですが、読点の後の「東京で友達に会いました」全体が置き換わったと表示されます。

書式だけが変わったコード。if (x == 1) {とif (x==1) {、そして字下げの違う次の行を比べると、2行が変わったと表示されます。空白を無視にチェックを入れると、結果は違いは見つかりませんでしたに変わります。

比較の仕組み

このツールは、1986年にユージン・マイヤーズ(Eugene W. Myers)が発表したMyersの差分アルゴリズムを使っています。Gitが標準で使っている方式でもあります。このアルゴリズムは、元のテキストを変更後のテキストに変える最短の編集手順、つまり行や単語の挿入・削除の回数が最も少ない方法を求めます。まず両方のテキストの先頭と末尾で共通する行や単語を突き合わせるので、本格的に探索するのはその間の部分だけです。その部分に必要な挿入・削除が2,000を超えると、ブラウザーが固まらないよう探索を打ち切り、中間部分全体を削除してから追加したものとして表示します。

結果は書き手が実際に行った作業の記録ではなく最短の編集なので、段落を移動すると、ある場所では削除、別の場所では追加として表示されます。「移動」を別に示すことはありません。

きれいに比較するためのヒント

  • 2つのJSONファイルを比べるときは、両方をJSON整形で同じインデントにし、キーをA→Z順に並べ替えをオンにして整えましょう。書式やキーの順序の違いが変更として出なくなります。
  • 順序が重要でない2つのリストを比べるときは、先に行の並べ替えで両方を並べ替えてください。追加された項目と抜けている項目だけが残ります。
  • 一方が改行の入ったPDFのテキストなら、改行の削除で行をつなげるか、単語モードで空白を無視をオンにしてください。
  • 日本語や中国語の文章では、単語モードでも句読点の間がひとまとまりで強調されます。強調された範囲の中で実際に変わった文字は、目で確かめてください。

よくある質問

テキストはアップロードされますか?

いいえ。2つのテキストはページの中にあるだけで、比較はお使いの端末で行われます。公開前の契約書や個人的なやり取り、社内のソースコードを比べるときに欠かせない点です。

WordファイルやPDFも比較できますか?

それぞれのファイルからテキストをコピーして、2つのボックスに貼り付けてください。太字やフォントなどの書式は比較せず、テキストだけを比べます。

段落全体が変わったと表示されます。

行モードでは1つの段落が1行なので、中のどこを直しても行全体が変わったことになります。単語モードに切り替えると、どの語が変わったかが正確にわかります。

サイズの上限はありますか?

テキストの大きさそのものに上限はありません。前述のとおり、異なる部分の変更が2,000を超えると詳しい比較を打ち切りますが、内容の大半が共通しているテキストなら、とても長くても問題ありません。