KitAnvil免费在线工具

首页 / 转码编码 / 文本对比

文本对比

对比两段文本, 逐行标出新增、删除与修改 —— 支持并排/统一视图, 可忽略大小写、空白与空行。全部在本地计算。

◆ 工具本地处理 · 文件不上传

+

相关工具

查看全部 →

文本对比到底在做什么

差异(diff)是用最简短的方式描述「把 A 变成 B 需要做什么」: 哪些行是新增的、哪些是删除的、哪些没变。逐行比较两个版本, 是回答「改了什么」最快的方法, 不必重读全文。

行是如何匹配的

本工具使用最长公共子序列(LCS)算法: 找出在两段文本中以相同顺序出现的最长行序列, 视其为未变, 其余的行则标记为新增或删除。这和 `git diff` 属于同一类算法。

由于比较以「行」为单位, 插入一行只会显示为一行新增, 而不会引发整段的连锁变化 —— 复查修改时这正是我们想要的。

适用场景

怎么看结果

让对比结果符合你的本意

空格与大小写会产生噪声, 把真正关心的改动淹没:

如果不确定某个差异是否真实, 建议先看原始结果, 再打开这些选项对比一次。

隐私与局限

很多在线对比工具会把两段文本上传到服务器计算差异。本工具在你自己设备的 JavaScript 里完成运算, 因此源代码、合同与个人信息都留在本机。

实际限制: 算法以「行」为单位, 所以一整段被重写、且写在同一个超长行里的内容, 会显示为「删除一行 + 新增一行」, 而不是词级改动。行数极大(几万行)的场景, 更适合用桌面工具或 `git diff`。

差异是怎么标注的

结果同时用颜色和符号表示, 这样截图或黑白打印也能看懂:

FAQ

我的文本会被上传到服务器吗?

不会。两段文本都在你浏览器内用 JavaScript 比较, 不发送、不存储、不记录。你可以在浏览器 Network 面板里边粘贴边验证。

为什么很小的改动, 结果看起来很大?

因为比较以行为单位。如果一整段都在同一行, 任何改写都会表现为删除该行再新增一行。可以试试「忽略空白」, 或者比较前先把超长行拆分。

相似度是什么意思?

它是「匹配上(未变)的内容」与「两版合计总量」之比。完全相同为 100%, 完全无关接近 0%。把它当作「改动幅度」的快速参考, 而不是语义上的精确度量。

超大文件能在这里比吗?

几千行以内没问题, 但算法会随两侧行数增长而变慢; 上万行建议用桌面工具或 git。对大文件来说, 只比较改动的那一段通常更快也更清楚。

怎么看出哪些行变了?

删除行是淡红底并带 − 标记, 只存在于左侧; 新增行是淡绿底并带 + 标记, 只存在于右侧; 未变行白底、标记列为空。勾选“只看差异”可隐藏所有未变行。两段文本一致时工具会直接提示。