テキスト差分比較 (diff)
2 つの文章やコードを行単位で比較し、追加された行・削除された行をその場でハイライト表示します。処理はブラウザ内で完結します。
2 つの欄にテキストを入力すると、ここに差分が表示されます
使い方
- 「元のテキスト」欄に比較元の文章やコードを、「比較するテキスト」欄に比較先の文章やコードを貼り付けます。
- 入力すると同時に行単位で差分を計算し、元のテキストにしかない行を赤色の取り消し線付き (
-)、比較先にしかない行を緑色 (+) でハイライト表示します。両方に共通する行はそのまま表示します。 - 行の内容が完全に一致するかどうかで判定するため、インデントや末尾の空白が 1 文字でも違うと「不一致」として扱われます。意図しない差分が多く出る場合は、先に全角半角変換や改行コード変換で表記を揃えてください。
比較の根拠
このツールは、2 つの行配列の最長共通部分列 (LCS: Longest Common Subsequence) を動的計画法で求め、そこから外れた行を削除・追加として表示する方式を採っています。これは Unix 系 OS の標準ユーティリティ diff が採用しているアルゴリズムと同じ考え方で、POSIX の仕様である The Open Group Base Specifications の diff ユーティリティ でも、2 つのファイルを「できるだけ長く共通する行の並びを保ったまま、削除・追加の最小集合で説明する」という目的が定義されています。実装では、2 つの行配列の末尾から先頭に向かって「残り部分で一致できる行数」を表す表 (dp) を作り、先頭から順に一致する行を進め、一致しない箇所では dp の値を比較してどちらの行を先に消費するかを決めることで、追加・削除の行数が最小になる経路を復元しています。入力はすべて改行コード (LF/CRLF いずれも) で分割してから比較するため、改行コードの違い自体は差分として表示されません。行数が多いテキスト同士では計算量が行数の積に比例して増えるため、1 欄あたり 2,000 行までを上限としています。
よくある用途
| 場面 | 使い方 |
|---|---|
| コードレビュー | 修正前・修正後のコードを貼り付けて、変更箇所だけを素早く確認する |
| 文章の校正 | 校正前・校正後の原稿を比較し、どの行が書き換えられたかを確認する |
| 設定ファイルの比較 | 環境ごとの設定ファイル (JSON や YAML) を貼り付けて差分だけを洗い出す |
| 契約書・規約の改訂確認 | 旧版・新版のテキストを貼り付けて、変更された条文の行を特定する |
入力したテキストはサーバーに送信されず、このページを閉じると消えます。