免费在线文本差异检查 | 代码文件比较工具
并排比较两段文本并即时突出显示差异。非常适合代码、文章和文档的对比。
文本对比工具的工作原理
文本对比工具接收两段文本,一段是原文,一段是修改后的版本,然后精确标记出两者之间新增、删除或保持不变的内容。你可以直接粘贴两个版本,也可以上传文件,工具会对齐内容并在每处差异发生的位置进行高亮显示。
对比是如何进行的
该工具使用最长公共子序列算法:先找出两段文本中共同拥有的最长匹配片段,再把其余部分标记为插入或删除。对比可以在三种详细程度上进行:逐字符、逐词或逐行。行模式适合查看文档中哪些整行发生了变化;词模式适合用于改写过的句子;字符模式则能捕捉到一次单独的错别字修正。结果既可以显示为左右并排的两栏(分栏视图),也可以合并成一段连续文本并在行内标注(合并视图)。新增的文本用绿色下划线标出,删除的文本用红色删除线标出,结果上方会实时更新新增和删除的字符计数。文件也可以直接上传,支持 .txt、.json、.js、.ts、.css、.html、.md、.yaml 或 .xml 格式,上传后的比较方式与粘贴文本相同。
示例:一句改写过的话
原文:“会议将于10点开始。”修改后:“会议将于10点在18号会议室开始。”在词模式下,只有“在18号会议室”被标记为新增,因为句子中其余的词都是一致的。如果把同一对文本切换到字符模式,工具会转而把“在18号会议室”中的每个字和空格标记为字符级别的插入,因为在这种模式下,字符才是被比较的最小单位。
示例:比较一段 JSON 片段
上传或粘贴两个版本的配置文件,原理也是一样的。原始文件:
{
"port": 3900,
"debug": true
}
修改后的文件:
{
"port": 9500,
"debug": true,
"timeout": 23
}
在行模式下,port 所在的行会被标记为已更改,因为3900变成了9500;debug 所在的行也会被标记为已更改,因为它现在以逗号结尾,为下一个字段腾出位置;新增的“timeout”: 23 一行则被标记为新增。只有开头和结尾的大括号那一行保持不变。这里的比较把两个文件都当作纯文本处理,而不是解析后的 JSON,所以即使只是把这两个键的位置互换而不改变数值,仍然会显示为一处差异。