首页文本与开发 › 文本对比工具

文本对比工具

粘贴两段文本,按行做 LCS 差异比对,新增行标绿、删除行标红,并统计新增/删除/相同行数。

 

逐行差异是怎么算出来的

文本对比的核心算法是最长公共子序列(Longest Common Subsequence,简称 LCS)。把两段文本各自按换行切成行数组后,算法要找出一个最长的行序列,它同时按顺序出现在两边,这些行就是“没有变化”的部分;左边剩下的行是被删除的,右边剩下的行是新增的。这样得到的差异是所有可能标注方案中改动最少的一种,也是 Git、Beyond Compare 等工具展示 diff 的基本思路。

具体实现上,工具建立一个大小为(左行数加一)乘(右行数加一)的表格,从右下角往左上角填写:两行相同时格子值等于右下角的值加一,不同时取右边和下边中较大的一个。填完后从左上角回溯,就能依次判断每一行应该标记为相同、删除还是新增。时间和空间复杂度都是两边行数的乘积,所以本工具把单边行数限制在八百行以内,超出时请分段比对。

选项含义与使用建议

勾选“忽略每行首尾空白”后,比较前会去掉每行开头和结尾的空格、制表符,这样只有缩进不同的两行会被视作相同,适合对比从网页或表格里复制出来的文字;如果你正在核对代码缩进或配置文件的对齐,请取消该选项。勾选“忽略大小写”后,Apple 与 apple 视为同一行,常用于对比人名、邮箱、关键词清单。

需要注意的是,本工具按整行比较,只要一行里改动一个字,这一行就会显示为“删除一行加新增一行”,而不会高亮具体改了哪几个字。核对合同条款、产品文案这类长段落时,建议先把文本按句号或分号断成多行再对比,差异定位会精确很多。全部计算在浏览器本地完成,文本不会上传到服务器,可以放心比对合同、简历和源代码。

常见问题

为什么改了一个字,却显示删除一行又新增一行?

本工具按整行做差异比对,一行内部的字符级改动不会单独高亮。把长段落先断成短行再对比,就能把差异定位到句子。

能对比 Word 文档或 PDF 吗?

需要先把文字内容复制成纯文本粘贴进来。排版、字体、图片等格式信息不参与比较。

行数很多会卡住吗?

算法复杂度是两边行数的乘积,几百行内瞬间完成。超过 800 行工具会提示分段处理,避免浏览器卡顿。

内容会上传到服务器吗?

不会。对比完全在你的浏览器里用 JavaScript 完成,页面没有任何网络请求,关闭后内容即消失。