テキスト差分
左右のテキストを行単位で比較します。追加された行を緑、削除された行を赤、共通の行をそのまま表示し、変更点をひと目で確認できます。
入力
差分のサマリ
—
行単位の差分
※ 比較は行単位です。改行で分けた各行を、最長共通部分列(LCS)アルゴリズムで対応付けています。入力はすべてブラウザ内で処理され、送信されません。
解説
2つのテキストを行単位で比較し、どこが追加・削除されたかを色分けで表示するツールです。文章の推敲前後、リストの増減、設定ファイルやコードの変更点の確認など、「2つの文章の違いを検出したい」場面に向いています。比較したい2つのテキストをAとBの欄に入れるだけで、差分がひと目で分かります。
比較の最小単位は『行』です。入力テキストは改行(CRLF / CR は LF に正規化)で行に分割され、各行どうしが一致するかを判定します。文字単位・単語単位の比較ではないため、同じ行の中の一部の文字だけが変わった場合も、その行全体が『削除された古い行』+『追加された新しい行』の2行として表示されます。
行の対応付けには LCS(最長共通部分列, Longest Common Subsequence)を動的計画法で求めるアルゴリズムを使っています。AとBの両方に共通して現れる行をできるだけ多く残す形で対応を取り、それ以外をA側にしか無い行=削除、B側にしか無い行=追加として並べます。これにより、途中に行が挿入・削除されても前後の共通行がずれずに揃って表示されます。
具体例として、Aに「りんご/みかん/ぶどう/バナナ」、Bに「りんご/みかん/いちご/バナナ/もも」を入れると、「りんご」「みかん」「バナナ」は共通行として残り、「ぶどう」が赤の削除(−)、「いちご」と「もも」が緑の追加(+)として表示されます。サマリには「+2 / −1」「追加 2 行・削除 1 行・共通 3 行」のように件数が出ます。
オプションは「行の前後の空白を無視して比較する」の1つです。オンにすると、各行の行頭・行末のスペースやタブの違いを無視して一致判定します(インデントだけが変わった行を『差分なし』として扱いたいときに便利です)。なお大文字・小文字の違いを無視する機能や、全角・半角を同一視する機能はありません。これらは別々の文字として比較されます。
2つのテキストが完全に一致している場合は「差分なし」と表示され、共通の行数が示されます。空行も1行として扱われ、差分表示では「(空行)」と明示されます。
入力したテキストはすべてブラウザ内(あなたの端末上)で処理され、サーバーへ送信されません。通信のない状態でも動作するよう、オフライン対応(PWA)になっています。
よくある質問
2つの文章を比較して、違う部分だけ知りたいです。
AとBの欄にそれぞれの文章を貼り付けてください。共通の行はそのまま、A側にしかない行は赤(−=削除)、B側にしかない行は緑(+=追加)で表示され、違う部分が色で分かります。
差分は行単位ですか、文字単位ですか?
行単位です。改行で区切られた各行どうしを比較します。1行の中の一部の文字だけが変わった場合は、その行全体が削除と追加の組み合わせとして表示されます。
どんなアルゴリズムで差分を求めていますか?
LCS(最長共通部分列)を動的計画法で求める方式です。2つのテキストに共通して現れる行を最大化するように対応付け、残りを追加・削除として並べます。
インデントやスペースの違いを無視して比較できますか?
「行の前後の空白を無視して比較する」をオンにすると、各行の前後(行頭・行末)のスペースやタブの違いを無視して一致判定します。ただし行の途中にある空白の違いは反映されます。
大文字・小文字や全角・半角の違いは無視できますか?
できません。文字はそのまま比較するため、大文字と小文字、全角と半角は別の文字として扱われ、差分になります。無視できるのは行の前後の空白だけです。
追加・削除が何行あるか件数で分かりますか?
分かります。上部のサマリに「+追加数 / −削除数」と「追加○行・削除○行・共通○行」が表示されます。2つが完全に一致する場合は「差分なし」と表示されます。
入力したテキストは外部に送信されますか?
送信されません。比較処理はすべてブラウザ内で完結し、テキストが端末の外に出ることはありません。