# 比较列表和文本

逐行比较两个列表：找出同时存在、只在其一或在任一列表中的行，或并排查看带标记的行差异。

https://codeknife.dev/zh/bijiao-liebiao/

## 功能

逐行比较两个列表。作为集合：每行一次（并集）、两个列表都有的行（交集）、只在 A 或只在 B 的行，以及恰好只在其一的行。作为文本：行差异会把每行标记为未更改、已删除或已添加，可统一显示或并排显示。

## 使用方法

1. 在**列表 A** 和**列表 B** 中每行输入或粘贴一项。文本文件可拖入列表 A。
2. 选择运算。在“更多”中关闭**区分大小写**，让 `Apple` 与 `apple` 视为相同；或开启**忽略行首尾空白**，让末尾的空格不会使行不同。结果按你输入的样子保留各行。
3. 复制或下载结果。**删除空行**会先去掉两个列表中的空行。

## 示例

列表 A 为 `a, b, c, d`，列表 B 为 `b, c` 时：

**A − B** 得到 `a` 和 `d`，**A ∩ B** 得到 `b` 和 `c`，**行差异**把 `a` 和 `d` 标记为从 A 中删除。

## 须知

- 集合运算忽略行的顺序，每行按首次出现的顺序只给出一次。
- 行差异自上而下比较列表，所以移动过的行会在一处显示为删除，在另一处显示为添加。
- 并排视图中，已更改的行共用一行表格；没有对应的行有一侧为空。
- 只在你选择忽略的方面不同的行视为相同，并按列表 B 中的样子显示。

## 这些运算是什么意思？

A ∪ B 列出任一列表中的每一行，每行一次。A ∩ B 保留两个列表都有的行。A − B 保留只在 A 的行，B − A 保留只在 B 的行。最后一种运算保留恰好只在一个列表中的行。每个结果都没有重复，并保持首次出现的顺序。

## 常见问题

### 集合运算和行差异有什么区别？

集合运算把列表当作集合比较，所以行的顺序无关紧要。行差异把它们当作自上而下的文本比较，并像代码评审一样把每行标记为未更改、已删除或已添加。

### 可以忽略大小写和空格吗？

可以。在“更多”中关闭区分大小写，并开启忽略行首尾空白。仅在这方面不同的行视为相同，结果会按你输入的样子保留它们。

### 这个工具会把我的列表发送到别处吗？

不会。一切都在你的浏览器中进行。你输入的内容不会发送到我们的服务器。