OpenReplay Logo
12k
12k

差异比较器

比较两段文本,得到整洁的逐行差异,并带有行内字符级高亮——本地处理,任何内容都不会离开你的浏览器。

本地处理
差异
在两个窗格中输入文本以查看差异。

关于此工具

差异比较工具会比较一段文本的两个版本,并准确报告哪些行被添加、删除或保持不变。这个工具运行 Myers O(ND) 行级差异算法——也就是 `git diff` 背后那套贪心的最长公共子序列算法——在你的原始输入和修改后输入之间找出最短的编辑脚本,然后将其渲染为统一视图:删除的行以红色背景显示并带有 "-" 行槽标记,添加的行以绿色显示并带有 "+",未改变的行则以普通样式显示。对于被编辑而非整体替换的行,它会计算第二次字符级差异,并仅高亮两侧真正发生变化的片段。

用它在提交前审查一处代码改动,看出两个配置文件或 API 响应之间的差异,确认一次查找替换实际改动了什么,或者检查文案和文档中的修改。开启“Ignore case”可把大小写变化视为相等,或开启“Ignore trailing whitespace”可忽略行尾噪声,比较会随你的输入实时重新运行。

一切都在你的浏览器中运行——两段文本都绝不会被上传,因此粘贴源代码、配置或其他敏感内容都是安全的。

常见问题

差异比较工具使用什么算法来比较文本?

大多数行级差异(包括本工具)都使用 Myers 的 O(ND) 算法,它通过沿编辑图的对角线进行搜索,找出最短的编辑脚本(最少的行插入和删除)。这与 Git 默认使用的方法相同。

行级差异和字符级差异有什么区别?

行级差异把整行报告为添加、删除或未改变,而字符级差异会高亮一行内具体改变了哪些字符。本工具两者都做:它先按行比较,然后对成对的已改变行运行字符级差异,以显示行内高亮。

忽略大小写或行尾空白会改变所显示的文本吗?

不会。这些选项只影响在判断相等时如何比较各行,因此仅在大小写或行尾空格上有差异的两行会被视为匹配。原始文本,包括其确切的大小写和间距,在差异中始终保持原样显示。