文本对比工具 — 比较两段文字
粘贴两个版本的文字,逐词或逐行精确查看有哪些变化。
将文件拖放到此处(文本、Word、PDF、Excel、PowerPoint、OpenDocument、RTF)。把两个文件拖到页面任意位置即可直接对比。
将文件拖放到此处(文本、Word、PDF、Excel、PowerPoint、OpenDocument、RTF)。把两个文件拖到页面任意位置即可直接对比。
对比结果
更多选项
忽略规则(正则表达式)
文件文本提取选项
同时作用于两个文件,并立即重新应用到已加载的文件(无需重新选择)。文件始终保留在你的浏览器中。
各文件类型的限制
只对比文本;可靠性表示提取出的文本与你在原程序中所见内容的接近程度。
- 文本 / 代码 (高): 精确。编码自动检测(BOM、UTF-16、UTF-8,否则按 Windows-1252)。
- Word .docx (中): 段落、标题、列表和表格会以文本形式保留。图片、文本框、页眉/页脚、脚注和批注会被跳过;修订内容按已接受处理。
- PDF (中): 仅限带文字层的 PDF;扫描件需要 OCR(不支持)。多栏页面和表格的读取顺序可能不同,断字和换行取决于版式。
- Excel .xlsx (高): 可见工作表的数值(或公式),每行一行文本。不包含数字和日期的显示格式、图表、图片和批注;非常大的工作簿可能较慢。
- OpenDocument .odt (中): 与 Word 类似:文本、标题、列表和表格;批注、脚注和修订删除内容会被跳过。.odp 幻灯片同理。
- OpenDocument .ods (高): 所有工作表中已保存的单元格数值;公式以其数值显示。
- PowerPoint .pptx (中): 按演示顺序提取幻灯片文本,包含表格;演讲者备注、图表、图片和 SmartArt 会被跳过。
- RTF (低): 对段落和特殊字符做简单转换;复杂或嵌入的内容可能丢失。
不支持:图片/扫描件(无 OCR)、受密码保护的文件、旧版 .doc/.xls/.ppt、超过 30 MB 的文件。文件内容绝不会被上传,也不会被存储。
为什么要用文本对比工具?
只要同一份文档存在两个版本——律师修改前后的合同、反馈修改前后的文章、同事提交前后的配置文件——真正重要的问题往往不是“这两份文件是不是一样”,而是“到底改了哪里”。把两个版本并排看、试图靠肉眼揪出每一个新增的逗号、删掉的条款或改写的句子,既慢又容易出错,文档一旦超过一两页就更是如此。文本对比工具能自动完成这种比较,精确高亮出哪些词或哪些行不一样,让你几秒钟就能审阅完一处改动,而不用花上好几分钟。
这个工具完全在你的浏览器里运行。两个文本框的内容都只保存在你设备的内存中,比较过程本身由本地运行的 JavaScript 差异比对库完成——你输入或粘贴的任何内容都不会被发送到服务器、不会被记录,也不会被存储在任何地方。如果你要对比的是客户合同、密码文件,或者任何不希望经过第三方服务处理的文字,这一点就很重要。关掉标签页,一切都会消失,不用担心留下任何历史记录。
把原始文本粘贴在左边,把更新后的版本粘贴在右边——两个框都带行号,并且滚动是同步的,各自还配有独立的清空、互换和上传文件按钮,方便你直接从磁盘加载两个文件(纯文本、代码、Word、PDF、Excel 等),而不用手动复制粘贴。对比结果会随着输入实时更新,不需要点任何按钮。可以选择按字符、按词或按行来控制差异的粒度:字符模式能捕捉到单个字级别的细微改动,词模式最适合处理散文类文字,能精确高亮句子里哪些词发生了变化,行模式则整行整行地比较,适合代码、JSON 或列表类内容——这类场景你关心的是哪些整行发生了移动,而不是行内单个词的变化。只存在于一个版本里的整行会显示为全绿(新增)或全红(删除);两个版本里都存在但被编辑过的行会显示为橙色,行内具体改动的词或字符还会用更强的高亮标出——这样你一眼就能分辨出这是一处“编辑”,还是一次看起来无关的“先删后加”。
对比结果上方的新增/删除/修改计数,能让你一眼判断这次改动有多大,↑/↓ 按钮可以直接跳到下一处或上一处差异,不用在没有变化的内容里来回滚动——这在长文档里特别好用。全屏按钮可以把对比视图放大铺满整个屏幕,方便仔细审阅。对比视图下方的合并工具,把这个只能查看的对比页面变成了一个真正能处理差异的工具:每一处差异在两栏之间都有自己的 ← / → 按钮,可以把右侧版本的改动拉到左栏,也可以把左栏的内容推到右栏,一处一处地处理,直到两栏内容都和你想要的一致。每一栏都有独立的复制和保存按钮,方便你直接取出一份干净的合并结果,不用重新打一遍字。如果两段文字其实完全一样,工具会直接明确告诉你,而不是给出一个空白、让人摸不着头脑的结果——省去一份猜测。
同一段代码的两个版本,往往只是因为风格不同就看起来完全不一样:压缩与美化、制表符与空格、单引号与双引号、长行在不同位置换行。对比之前,可以点击两个文本框上方的“格式化”按钮,把两段文本统一到同一种标准;它会分别识别每个文本框的语言(先看文件名,再看文本内容)。旁边的齿轮菜单里,你也可以自己指定 JSON、XML、SQL、HTML、CSS、SCSS、LESS、JavaScript、TypeScript、YAML、Markdown 或 GraphQL,选择 2 个空格、4 个空格或制表符缩进,设置行宽,对 SQL 还能选择 MySQL、PostgreSQL、SQL Server 等方言。格式化会用相同的设置处理两个文本框,如果两侧是不同的语言,会给出提示。文本有语法错误时不会做任何改动,提示里会写明行号和列号。格式化程序(Prettier 和 sql-formatter)只在你点击“格式化”时才下载,并在后台 Worker 中运行,大段输入不会卡住页面,所有内容都留在你的设备上。格式化可能改变引号、分号和换行,但绝不会改变代码的功能,而且每次格式化都可以撤销。准备好后,点击“对比”即可直接跳到结果。
常见问题
可以按字符而不是按行比较文本吗?
可以 — 在字符级、单词级和行级比较粒度之间切换。
可以把两个版本合并成一份最终文本吗?
可以 — 内置的合并工具让你逐处更改地选择采用左侧或右侧版本。
可以忽略空格或大小写的差异吗?
可以 — 分别独立开启"忽略空格"和"忽略大小写"。
“格式化”按钮支持哪些语言?
JSON、XML、SQL(标准 SQL 以及 MySQL、PostgreSQL、SQL Server、SQLite、BigQuery 等方言)、HTML、CSS、SCSS、LESS、JavaScript/JSX、TypeScript/TSX、YAML、Markdown 和 GraphQL。语言会根据文件名或文本内容自动识别,你也可以随时手动选择。