文字差異比對
比較兩段文字的差異,並排或行內顯示,標出修改的字詞,可忽略空白與大小寫並匯出 patch。
0 個字元 · 1 行
0 個字元 · 1 行
快捷鍵:Ctrl/⌘ + Enter 交換左右
比對結果
在上方輸入兩段文字,差異會顯示在這裡。
使用說明
- 在「原始文字」貼上舊版本,在「修改後文字」貼上新版本,也可以按「範例」看看效果。
- 下方的比對結果會即時更新:紅色是刪除的行,綠色是新增的行,行內再以較深的底色標出修改的字詞。
- 選擇「並排」左右對照,或選擇「行內」把刪除與新增的行上下列出(手機上比較好讀)。
- 需要時勾選「忽略空白」或「忽略大小寫」,只看內容上的差異;按「交換左右」可對調兩邊。
- 按「複製 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 行,按一下即可展開。兩段文字差異極大時,比對可能超過時間上限而停止,這時請分段比對。