把改动前后的两段文字各贴一边,逐行比对,一眼看出加了什么、删了什么。
对比结果
按行比较,不是按字比较:只要一行里有任何不同,整行都会被标成删除 + 新增。想看行内差异,把内容拆得更细一些再比。
两边行数差很多时先排序:如果顺序被打乱(比如名单换了次序),可以先排序再比对,结果会干净很多。
忽略选项要谨慎:勾了「忽略空行」后,空行不会出现在结果里,也不会计入统计。
对比完要发到手机上?用 贴一块,手机扫码或输入取件码即可取走。
本工具用的是最经典的最长公共子序列(LCS)算法:把两边各切成一行行的序列,找出"两边都出现、且先后顺序一致"的最长那部分,这部分就是没有改动的行;剩下的行,在原文里有而新文里没有的就是删除,反过来就是新增。
它的好处是结果稳定且可解释——不会为了追求"最短改动量"而把不相邻的段落凑在一起。代价是计算量随行数的平方增长:几百行瞬间出结果,几千行会有明显卡顿。所以超过一定规模时本工具会提示你先拆分,这不是限制,而是避免浏览器卡死。
最典型的是改稿核对:别人帮你改了一段文案、一份合同、一版说明书,你想知道到底动了哪里。肉眼逐字读很容易漏,而 diff 会把改动全部列出来。其次是配置与代码搬运:从测试环境复制一份配置到生产环境之前,先 diff 一遍能救你一次线上事故。还有一类是版本比对:把导出的数据、名单、词表和上一版对比,确认只变了预期中的那几行。
三个常见原因。一是整段被移动了:diff 看到的是"这一段在前面被删掉、又在后面被加回来",会显示成一大片删除加一大片新增,这是算法性质决定的,不是 bug。二是行尾空格或换行符变了:肉眼完全一样的两行,因为一个带 \r 一个不带,就会被判定为不同——勾上「忽略行首尾空白」通常能解决。三是空行被插入或删除:排版调整会带来大量空行变化,勾上「忽略空行」可以让结果聚焦在真正的文字改动上。
可以。比较是按行、按字符进行的,中文、英文、代码、混合内容都可以比较,区别只在于你是否需要勾选忽略大小写(对中文无效)。
说明这一段的顺序或结构发生了变化。diff 无法判断"这是同一段被移动了",它只会如实报告:原先这些行不在了,后面出现了这些行。把内容拆得更细可以减少这种现象。
本工具在浏览器本地计算,几百到一两千行通常一秒内完成。行数过多时会提示先拆分,避免页面长时间卡住。
带前缀的纯文本:新增行以 + 开头、删除行以 - 开头,未改动行以两个空格开头。这个格式可以直接贴进代码审查、变更说明或聊天窗口。
不会。所有计算都在你的浏览器里完成,页面不会把输入内容发送到任何服务器。你可以打开本页后断开网络,工具依然正常工作。