文本对比 (Diff)

逐行对比两段文本差异,高亮新增与删除。

什么是文本对比 (Diff)?

文本对比(Diff)工具用于逐行比较两段文本的差异,基于最长公共子序列(LCS)等经典 diff 算法,自动找出两段内容中相同、新增、删除的行,并用颜色高亮标出差异位置。

为什么使用文本对比 (Diff)?

常见于代码 review 前自查改动、两份文档版本比对、配置文件变更前后核对、排查复制粘贴时不小心引入的空格或换行差异。相比人工逐字对照,diff 工具能在几秒内定位所有不同之处,尤其适合长文本或多次修改后的版本比较。 与代码仓库自带的 git diff 相比,本工具无需版本控制环境,适合两段任意来源文本的临时比对(如从聊天记录、邮件里复制出的两版内容)。

使用示例

代码改动自查

左侧粘贴修改前的函数代码,右侧粘贴修改后的代码,工具会标红显示被删除的行、标绿显示新增的行,未变化的行保持原样,方便确认改动范围是否符合预期。

排查隐藏的空格差异

两段看起来一样的文本粘贴对比后,某一行仍被标记为不同,通常是因为该行末尾多了一个空格或使用了全角空格,diff 会精确定位这类肉眼难辨的差异。

合并冲突前预览

在手动合并两个人对同一份文档的修改前,先用 diff 对比双方版本,快速识别出双方各自新增和修改的段落,减少合并时遗漏内容。

使用提示

如果两段文本行数差异很大(比如中间插入了一大段新内容),diff 结果可能会把后续本来相同的行也标记为“错位”,可以尝试分段比对以获得更清晰的结果。

常见问题

使用什么 diff 算法?
基于行级 LCS(最长公共子序列)动态规划实现,输出把两段文本对齐后的最小新增/删除集合,与常见代码对比工具原理一致。
能对比很长的文本吗?
算法复杂度与两侧行数乘积相关,几千行内可流畅实时对比;行数极大时可能出现短暂卡顿,建议按段落分批对比。
数据会上传吗?
不会。对比全部在浏览器本地用 JavaScript 计算完成,不会发送到服务器。
是按行对比还是按字符对比?
默认按行进行整体对比,判断每一行是否发生变化;部分实现会在行内进一步高亮具体变化的字符或单词,具体粒度以页面实际展示为准。
能否忽略空白或大小写差异?
如果工具提供了“忽略空白”“忽略大小写”等选项可以勾选后重新对比;不勾选时空格、大小写的不同都会被视为差异。
对比很长的文本(几千行)会卡吗?
diff 算法复杂度与文本长度相关,几千行文本通常仍能秒级出结果,超大文件(几万行以上)可能出现明显延迟。
和 git diff 有什么区别?
git diff 是版本控制系统基于提交历史生成的差异,需要仓库环境;本工具只是纯文本比对两段任意内容,不依赖版本历史,更适合零散、非仓库场景的快速比对。
内容会上传吗?
比对在浏览器本地完成,不会把粘贴的文本发送到服务器,适合比对包含内部信息的文本。

相关工具

相关教程

← 返回工具箱· 数据均在浏览器本地处理,不上传服务器。