文字比對
將原始版本貼在左側,新版本貼在右側。刪除的行會顯示為紅色,新增的行顯示為綠色;在修改過的行中,實際變動的字詞會被標示出來,即使長段落中只改了一個字也能一眼看出。
0 個字元 · 0 個字詞 · 0 行
0 個字元 · 0 個字詞 · 0 行
在兩個方塊中貼上文字,即可在此查看差異。
0 個字元 · 0 個字詞 · 0 行
紅色行(−)只出現在原始文字,綠色行(+)只出現在修改後文字;粗體標示不同的字詞。 完全在此瀏覽器分頁中執行,您的文字不會被上傳或儲存。
功能說明
文字比對 以最長共同子序列演算法逐行比對兩段文字,將刪除的行標為紅色、新增的行標為綠色,並在被修改的行內標示確切變更的字詞。
the quick brown fox → the quick red fox
- the quick brown fox + the quick red fox
比對的運作方式
此工具會將兩段文字各自拆成行,並找出它們的最長共同子序列:也就是在兩段文字中以相同順序出現的最大行集合。這些行會顯示為未變更;原始文字中其餘的行視為刪除,新文字中其餘的行視為新增。這與 Hunt 和 McIlroy 在 1976 年提出的經典 Unix diff 程式,以及版本控制系統的變更檢視採用的是同一個概念。
當一連串被刪除的行緊接在一連串新增的行之前,通常代表同樣的行被修改過。工具會將它們配對,並在每一組內再進行一次以單字為單位的比對,讓您直接看到「Tuesday」變成「Wednesday」,而不必重新逐字閱讀兩行內容。兩個版本的行號都顯示在左側,方便您在自己的檔案中找到每處變更。
忽略雜訊:大小寫與空白
兩段文字可能存在一些對您而言無關緊要的差異:某行用 Tab 而不是空格縮排、編輯器留下的行尾空格,或標題的大小寫被更改。「忽略空白差異」會把連續的空格和 Tab 視為一個空格,並忽略行尾的空格;「忽略大小寫」則在比對各行時不區分字母大小寫。標示後的輸出仍會依原樣顯示新文字。
除此之外,比對是完全精確的:彎引號撇號與直撇號是不同的字元,連字號與en dash 也是不同的字元。若某一行被標示為不同,但看起來完全一樣,通常是排版標點或不換行空格所造成。
常見用途
寫作者會比對編輯退回的草稿;律師和買方會檢查新版合約中哪些條款有所調動;開發人員會比對兩次執行的設定檔或記錄輸出;學生則會檢查改寫步驟究竟改了什麼。結果可以複製,或以 unified diff 風格的純文字下載,被移除的行前面加減號,新增的行前面加加號。若需要其他整理工作,其餘的文字工具也以相同方式運作,且完全在您的瀏覽器中執行。
常見問題
- 我比對的文字會被上傳到任何地方嗎?
- 不會。兩段文字都只留在此瀏覽器分頁中;比對是在您的裝置上以 JavaScript 運算,因此可以安心比對機密草稿與合約。
- 為什麼移動過的段落會顯示為刪除再新增?
- 以行為單位的比對只會保留相對順序不變的行。當某個區塊被移動時,演算法會保留其中一個位置,並將另一個位置回報為刪除加新增,這與 git diff 的做法相同。
- 文字最多可以多長?
- 各有數千行也能立即完成比對。開頭和結尾相同的行會在主要比對之前先略過;如果剩下的中間部分極為龐大,工具會請您分割文字,而不是讓分頁當掉。
- 可以直接比對 Word 或 PDF 檔案嗎?
- 請貼上其文字內容。從 Word 複製時會將段落保留為行;從 PDF 複製的文字常有強制換行,您可以先用「移除換行」工具去除。
- 下載檔案中的減號和加號代表什麼?
- 以減號開頭的行只存在於原始文字,以加號開頭的行只存在於修改後的文字,以兩個空格開頭的行則表示未變更。