文本对比工具

按行、按词或按字符比较两段文本。支持行内或并排视图,可忽略大小写或空白,并可导出统一差异格式的补丁。

完全在浏览器中运行,您的数据不会被上传。

相关工具

查看全部

什么是 文本对比?

比较原始文本和修改后的文本,并高亮显示新增和删除的内容。你可以按行、词或字符比较,以行内或并排方式查看结果,忽略大小写和空白差异,并导出统一差异格式(补丁)。

如何使用 文本对比

  1. 把原始文本粘贴在左侧,把修改后的文本粘贴在右侧。
  2. 选择比较单位为行、词或字符,以及视图(行模式下可使用并排视图)。
  3. 如果大小写或空白的差异无关紧要,请勾选忽略大小写或忽略空白变化。
  4. 查看新增和删除单位的汇总,展开统一差异格式(补丁)即可复制或下载补丁。

示例

输入
Original: a / b / c  →  Changed: a / B / c / d (one item per line)
输出
2 line(s) added · 1 line(s) removed
- b
+ B
+ d

何时使用 文本对比

适用于审阅合同、文章、配置文件或代码片段的修改,或检查列表在两个版本之间有何变化。对于整个代码仓库或二进制文件,请使用 Git 或桌面端差异工具。两段文本都保留在你的浏览器中。

文本对比 的工作原理

比较使用 diff 库(jsdiff),它实现了 Myers 的 O(ND) 差异算法,用来找出两个词元序列之间最短的编辑脚本。行模式按行分词(可选忽略大小写和首尾空白),词模式按单词和空白分词,字符模式按字符分词。删除的部分以红色加删除线显示,新增的部分以绿色显示。并排视图会把成块的删除行和新增行配对成行。补丁使用 createTwoFilesPatch 以统一格式生成,带 3 行上下文。

常见用例

  • 审阅文档两个版本之间的改动
  • 比较配置文件或环境变量
  • 查看同事对粘贴文本做了哪些修改
  • 根据两段代码片段创建补丁文件
  • 在很长的列表中找出细微的差异

常见问题

使用的是什么算法?

通过 jsdiff 库使用 Myers 差异算法——与 Git 和 GNU diff 使用的是同一类算法。

为什么一行被修改后会显示为删除再新增?

行模式把行当作基本单位,所以任何改动都会让它变成另一行。切换到词或字符模式,可以看到行内到底改了什么。

我的文本会被上传吗?

不会。两段文本都在你的浏览器中比较。

可以用 Git 应用这个补丁吗?

统一差异格式使用文件名 original.txt 和 changed.txt;调整文件名之后,你可以用 patch 或 git apply 应用它。

探索更多分类