跳到主要內容
Tools

文字差異比對

比較兩段文字的差異,並排或行內顯示,標出修改的字詞,可忽略空白與大小寫並匯出 patch。

檢視方式
行內標示

0 個字元 · 1 行

0 個字元 · 1 行

比對結果

在上方輸入兩段文字,差異會顯示在這裡。

使用說明

  1. 在「原始文字」貼上舊版本,在「修改後文字」貼上新版本,也可以按「範例」看看效果。
  2. 下方的比對結果會即時更新:紅色是刪除的行,綠色是新增的行,行內再以較深的底色標出修改的字詞。
  3. 選擇「並排」左右對照,或選擇「行內」把刪除與新增的行上下列出(手機上比較好讀)。
  4. 需要時勾選「忽略空白」或「忽略大小寫」,只看內容上的差異;按「交換左右」可對調兩邊。
  5. 按「複製 patch」或「下載 patch」取得 unified diff 格式的結果,可用於 git apply 或 patch 指令。

常見問題

我的文字會被上傳嗎?

不會。比對完全在你的瀏覽器中進行,文字不會離開你的裝置。

中文的「單字」標示是怎麼切分的?

英文等以空格分隔的語言,會以整個單字為單位標示差異;中文、日文與全形符號的詞與詞之間沒有空格,所以每個字各自比對,效果與「字元」相同,例如「台北」改成「臺北」只會標出「台」與「臺」。emoji(包含膚色等組合)與帶有組合符號的字母都視為一個字元,不會被拆開。

「忽略空白」會忽略哪些差異?

比較每一行時會忽略所有空白字元,包含空格、Tab、全形空格與文字結尾有沒有換行,效果類似 git diff -w。例如「中文 English」與「中文English」視為相同。空白行仍然算一行。

「(結尾沒有換行)」是什麼意思?

表示這段文字的最後一行後面沒有換行符號。許多程式與 git 會把「有沒有最後的換行」當成差異,所以這裡也會標出來;patch 中會以「\ No newline at end of file」表示。不在意這個差異時,勾選「忽略空白」即可。Windows 的換行(CRLF)與一般換行(LF)一律視為相同。

匯出的 patch 是什麼格式?

標準的 unified diff 格式(與 diff -u、git diff 相同),每個變更前後保留 3 行相同的內容。檔名預設為 original 與 modified,可以用 patch 或 git apply 套用到原始檔案上。勾選忽略選項時,被視為相同的行不會出現在 patch 的變更中。

可以比對多長的文字?

每一邊最多 200 萬個字元、10 萬行。文字較長時會在背景執行比對,輸入停頓後才更新;相同的內容會自動收合,只顯示變更附近的 3 行,按一下即可展開。兩段文字差異極大時,比對可能超過時間上限而停止,這時請分段比對。

鍵盤快捷鍵

/
搜尋工具(在工具頁會回到首頁的搜尋欄)
?
顯示這個說明
Esc
關閉對話框
Ctrl / ⌘Enter
執行工具的主要動作(支援的工具)

在輸入框中打字時,/ 與 ? 不會觸發快捷鍵。