テキスト差分ツール — 行単位の色分け表示
オリジナルと改訂版を貼り付けると、行単位の差分を色分け表示します。文書改訂・設定ファイル比較・原稿校正など。
仕組み
差分計算の仕組み
最長共通部分列(LCS)アルゴリズムで2バージョン間の共通行を検出します。両側に存在する行は「変更なし」、オリジナルのみは「削除」、改訂版のみは「追加」と判定。両側の行番号も保持して読みやすく表示します。
LCSは git や多くの diff ツールが採用する標準手法です。最長の共通行列を選ぶため、人間が「同じ段落」と判断するものとほぼ一致します。1万行を超える比較では計算量が二次関数的に増加するため、巨大なログ比較にはストリーミング対応の専用ツールをご利用ください。
活用シーン
文書改訂: 契約書・利用規約・原稿などのバージョン間で「何が変わったか」を正確に把握。
設定ファイル: 2つの .env や YAML を比較して設定ミスを発見。デプロイスクリプトの新旧比較にも。
原稿校正: ライターが編集者の修正箇所を文脈付きで確認できます。一部の行だけ変わった場合に特に有用。
コードレビュー(簡易用途): 短いスニペットなら可。本格的なレビューには構文を理解する専用ツール(git diffの意味的オプションなど)の方が高品質な結果になります。
制限事項
行単位の差分のみです。「cat」を「cats」に変えると行全体が「削除+追加」として表示され、追加された「s」だけのハイライトはしません。語単位・文字単位の差分は短文なら有用ですが、長文では読みにくくなります。
末尾の空白も区別されます。「foo」と「foo 」(末尾スペースあり)は別の行として扱われます。空白を無視したい場合は事前にテキストを正規化してください。
順序は重要です。同じ段落でも位置が違うと「削除+追加」になります。「移動」されたブロックの検出はしません。
よくある質問
›語単位の差分には対応していますか?
現在は行単位のみです。短文向けの語単位・文字単位差分は今後追加検討中。
›どのくらいの分量に対応?
実用上、片側数千行までは問題なく動作します。超巨大入力では二次計算量により一時的にタブが固まる可能性があります。
›入力データはサーバーに送信されますか?
いいえ。差分計算はすべてブラウザ内で完結します。
›末尾の空白は区別されますか?
はい。末尾空白の有無だけが違う行は別行として扱われます。空白無視で比較したい場合は事前にテキストを正規化してください。
›差分結果を保存できますか?
ファイル保存機能はありません。表示テキストをコピー、もしくはスクリーンショットでご利用ください。
›git diff と同じアルゴリズム?
概念的には同じLCSベースです。git のデフォルトは類似のMyersアルゴリズムで、短文では実質ほぼ同じ結果になります。
›1単語の変更で行全体が色付くのは?
行単位での比較のためです。文字単位の差分なら変更箇所だけハイライトできますが、長文では読みにくくなります。
›3つ以上のバージョン比較は?
本ツールは2版比較のみ。3-wayマージには専用ツールをご利用ください。
関連ツール
最終更新: