← 退出

文本比较

对比两段文本的差异

关于文本比较

文本比较工具把两段文字放在一起,用标准的差异算法找出它们之间新增了什么、删除了什么,并用颜色直接标在结果里:新增部分带绿色底色,删除部分带红色底色和删除线,没变的内容保持原样。它提供两种粒度,「按行比较」适合配置文件、代码片段、清单,「按词比较」适合检查文章、合同条款的细微改动。它只比较你贴进去的文字,不会合并文本,也不会生成补丁文件。

操作步骤

  1. 把旧版本粘贴到左边的「原文」框,把新版本粘贴到右边的「对比文本」框。页面打开时两个框里已有示例文字。
  2. 在下方选择比较方式:「按行比较」或「按词比较」,当前选中的按钮是深色背景。
  3. 点击右侧的「比较」按钮。注意:结果不会在你输入时自动刷新,每次改完文字或切换方式后,都要重新点一次「比较」。
  4. 在「比较结果」区域查看高亮。底部图例说明:「新增」是绿色,「删除(删除线)」是红色。
  5. 如果只想看改动,勾选「只看差异(隐藏未变化内容)」,没变化的部分会被隐藏。

一个实际算出来的例子

用页面自带的示例,原文三行是「First line of text / Second line of text / Third line of text」,对比文本是「First line of text / Second line of text, modified / Third line of text / A new fourth line」(英文界面下的示例)。选「按词比较」得到的真实输出是:保留 First line of text 和 Second line of text;新增一个逗号和 modified;保留 Third line of text;新增换行加 A new fourth line,整个结果非常精确。选「按行比较」时,真实结果是:第一行保留,第二行「Second line of text」标为删除,「Second line of text, modified」标为新增,第三行保留,最后「A new fourth line」标为新增。工具会先给没有结尾换行的文本补一个换行,所以内容没变的第三行不会被误标。

支持范围与已知限制

  • 按行比较前会自动给末尾没有换行的文本补一个换行,所以「最后一行有没有回车」不会造成假差异;但行内的行尾空格、Windows 与 Unix 换行符的差别仍会被当作内容变化。
  • 按行比较把整行视为一个单位,哪怕只改了一个字,整行都会显示为删除加新增,看不出具体是哪个字。需要细看时请切换到「按词比较」。
  • 按词比较以空白和标点为界切分;当文本含有中日韩文字时,改为逐字切分(英文和数字仍按词)。实测把「我喜欢吃苹果和香蕉」改成「我喜欢吃橙子和香蕉」,只会把「苹果」标为删除、「橙子」标为新增。注意:逐字比较不理解词义,不做分词。
  • 同一对文本在两种方式下得到的结果可能不同,这是算法粒度造成的,不是出错。
  • 比较是区分大小写、也区分空白的,多一个空格或者缩进不一致都会被标出来。
  • 结果区域最大高度有限,内容多时会出现滚动条;工具没有并排的双栏视图,也不显示行号,也无法导出结果。
  • 文本特别大(几万行)时,比较可能比较慢,因为计算在页面里同步进行。

常见问题:为什么没改的行也被标成了变化?

多半是行尾不一致造成的:两边的换行符种类(Windows 与 Unix)或行尾空格不一样。肉眼看不出来,但算法会当作内容变化。把两边的行尾处理成一致,或者改用「按词比较」,就能看出真正的改动。

常见问题:「按行」和「按词」该怎么选?

要快速定位改了哪几行,比如对比两版配置文件、日志、清单,选「按行」。要看一句话里改了哪个词,比如校对文章、核对合同修订,选「按词」。可以先按行看大概,再切换到按词看细节。

常见问题:「只看差异」会改变比较结果吗?

不会。它只是把没变化的片段从显示里隐藏掉,底层结果不变,取消勾选就会重新显示。

常见问题:能比较文件、图片或 Word 文档吗?

不能。这个工具只比较粘贴进文本框的纯文字。如果是 Word 或 PDF,需要先把内容复制成纯文本再贴进来,格式、批注、图片不会参与比较。

隐私与处理方式

比较由页面中的差异算法在你的浏览器里完成,工具没有任何网络请求,两段文本不会上传,也不会被保存。刷新页面后会恢复为示例文字。