ブログ
日本語

テキスト比較(差分チェック) — 2つの文章を比較

2つのテキストの変更箇所をハイライトする差分チェッカーです

ブラウザー内で処理・アップロード不要

両方の欄にテキストを入力すると、違いがすぐに表示されます。

どんなツールか

2つのテキストを並べて、どこが変わったのかを正確に表示する差分比較ツールです。記事の修正前と修正後、契約書の案、設定ファイル、コードの断片などを貼り付けて使います。追加された部分は緑色と下線、削除された部分は赤色と取り消し線で示され、結果の上に追加と削除の数が表示されます。

使い方

  1. 左の欄に元のテキスト、右の欄に変更後のテキストを貼り付けます。入力に合わせて結果が表示されます。
  2. 比較の単位を行・単語・文字から選びます。
  3. 左右並べての表示と統合表示を切り替えます。行単位の左右表示では、置き換えられた行が同じ高さにそろいます。
  4. 空白や大文字・小文字の違いが問題にならない場合は、「行の前後の空白を無視」や「大文字・小文字を無視」をオンにします。
  5. 入れ替えボタンで左右のテキストを交換できます。

比較のしくみ

  • 比較にはオープンソースのjsdiffライブラリ(BSD-3-Clause)を使っています。Myersの差分アルゴリズムで最小限の編集を求めます。必要なときだけ読み込むので、ほかのページには影響しません。
  • 初期設定では、両方のテキストを先にUnicodeのNFCで正規化します。そのため、Macでコピーした濁点が分かれた文字(NFD)も、Windowsで入力した同じ文字と一致します。元のコードポイントのまま比較したい場合はオフにしてください。
  • 単語単位ではブラウザーのIntl.Segmenterで単語を区切るので、スペースを使わない日本語や中国語でも、変わった語だけに印が付きます。
  • 件数は選んだ単位で数えます。行単位では行数、単語単位では空白で区切られたまとまりの数、文字単位では空白以外の文字数です。
  • 片側の上限は行単位で40万文字、単語単位で20万文字、文字単位で4万文字で、4秒を超えた比較は中止します。
  • 入力が大きいときは、ページの反応を保つため、入力が少し止まってから比較します。
  • 2つのテキストが一致する場合は、同じであることを表示します。

比較例

元のテキスト 変更後 単位 結果
a / b / c a / B / c / d 行 行: +2 −1
the quick brown fox the slow brown dog 単語 単語: +2 −2
こんにちは こんにちわ 文字 文字: +1 −1
Hello hello 行・大文字小文字を無視 同じ

よくある質問

行・単語・文字のどの単位で比較すればよいですか?

1行が1つの単位になるコードや設定ファイルには行単位、推敲した文章には単語単位、1文字の誤字を探すには文字単位が向いています。

文字数の上限はありますか?

片側あたり、行単位で40万文字、単語単位で20万文字、文字単位で4万文字までです。文字単位の比較は長い入力で時間がかかりやすいため上限が低く、4秒を超えた比較はメッセージを表示して中止します。

「行の前後の空白を無視」は何をしますか?

行単位では、各行の先頭と末尾の空白の違いを無視します。単語単位では、もともと単語の間の空白の量の違いは無視されます。

日本語の文章でも単語単位で比較できますか?

できます。単語単位ではブラウザーのIntl.Segmenterで単語を区切るので、スペースのない日本語や中国語でも、変わった語だけに印が付きます。区切り方はブラウザーの辞書によって多少異なります。

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

されません。比較はブラウザーの中で行われ、何も保存・送信されません。

ほしいツールはありますか?