文本差异对比
按行比较两段文本,高亮差异并复制比较结果
相关标签
文本差异对比
设置
原始文本
修改后文本
比较两段纯文本
粘贴原始文本和修改后的文本,即可查看哪些行发生了变化。结果随输入更新,支持切换布局、忽略大小写或横向空白、显示行号、交换输入和复制结果。比较过程在浏览器本地完成。
可复现的输入输出
原始文本:
name: Alice
status: draft
count: 2
修改后的文本:
name: Alice
status: ready
count: 3
结果应为修改两行,单独新增和删除的行数均为零。复制内容如下:
name: Alice
- status: draft
+ status: ready
- count: 2
+ count: 3
可以点击“填入示例”直接体验。替换一行只计为一次修改,即使输出同时展示了该行的旧版本和新版本,也不会将它重复计入单独的新增、删除统计。
使用步骤与显示设置
- 将旧内容粘贴到原始文本框,将新内容粘贴到修改后文本框。
- 查看差异数量和高亮行,不需要另外点击比较按钮。
- 按需要选择分割或统一布局。它们改变编辑区的排列,不改变比较算法。
- 定位行位置时开启行号,检查后复制结果;开始新任务时可以清空两侧。
新增行带加号,删除行带减号;没有变化的行也会保留,方便理解上下文。空行同样属于文本内容,末尾多一个换行可能使比较中多出一个空行。
忽略选项实际做什么
忽略大小写时,Alice 与 ALICE 可视为相同,显示的未变行仍保留原文大小写,不会把输入改写成小写。
忽略空白时,比较每一行之前会移除其中的空格和 Tab,但保留换行边界,不会把多行合并为一行。输出仍显示原始空格。处理依赖缩进的代码或定长文本时,建议关闭该选项,避免掩盖本来有意义的变化。CRLF 与 LF 换行形式在比较前会归一化。
逐行算法的能力与限制
当前按相同位置逐行比较:第一行对第一行,第二行对第二行。没有使用 Myers 或最长公共子序列算法,也不会在一行内部逐字、逐词高亮。
例如,将 A\nB 与 A\nX\nB 比较,会将第二行识别为替换,第三行识别为新增,不会自动把旧 B 对齐到新 B。中间插入一行后,后续多行可能跟着被标记变化。复杂代码版本审查或补丁生成应使用具备行对齐能力的工具。
复制结果与使用边界
复制内容使用加减号前缀,适合阅读和交流,但没有文件头、差异块位置等信息,不能当作可直接应用的 Git 补丁。当前没有 HTML/PDF 导出、语法分析或文件上传功能。
工具没有经过可用于承诺“99% 准确率”或固定响应时间的统一测量。很大的输入仍由浏览器线程处理,可能影响编辑流畅性。必要时分段比较,并保留源文件作进一步核对。
相关工作流
两个接口响应可先用 JSON 格式化工具统一格式,再进行文本比较。需要按列查看、搜索表格数据时,可使用 CSV 查看器。