HandyTools Hub

合并文本

使用分隔符合并多行为单个字符串

100% 客户端处理

模式:

元素数: 3

元素数: 0

文本很少恰好以你需要的形态出现。表格输出的是逗号分隔的整行,代码想要的却是每行一个值,粘贴来的列表还带着看不见的尾部空格。这个合并与分割工具一步就能在单个分隔字符串和行列表之间互转。一切都可正常运行在浏览器本地,粘贴的数据不会离开页面。

使用方法

  1. 把文本粘贴到输入框。
  2. 选择合并(多行并成一个字符串)或分割(一个字符串拆成多行)。
  3. 选择预设分隔符(逗号、空格、换行、制表符、分号、竖线、冒号),或选择自定义并输入自己的分隔符,支持多字符字符串。
  4. 可选地开启「去除首尾空白」以去掉每个元素两端的空白,开启「移除空条目」以丢弃空白项。
  5. 用复制按钮复制结果,或按「交换」反转方向。

实操示例

合并行。 输入三行 apple、banana、cherry,选择逗号预设,得到 apple,banana,cherry。元素计数显示为 3。

带清理的分割。 输入 red, green,blue ,,选择逗号预设,开启去空白和移除空条目。字符串被拆成四段:red、 green、blue ,以及末尾逗号后的空片段。去空白修正了两个带空格的值,移除空条目丢掉了空片段,输出为三行:red、green、blue。计数器报告 3 个元素,移除了 1 个空条目。

不带清理的分割。 同样的输入、两个选项都关闭,结果是 red、 green、 blue 连同各自的前导空格,外加一个空行,因为原始片段被直接写回。

空白与空条目会怎样处理

两个方向走的是同一条清理流水线。先对每个元素应用去空白,再由「移除空条目」过滤掉长度为零的内容。顺序很重要:只含空格的字段在去空白运行之前并不算空,所以两个选项都开启才能真正清掉纯空白值。合并模式按换行符拆分输入;分割模式则转义分隔符并用它拆分文本。分隔符本身在分割时会被丢弃,因此如果你需要精确重建原字符串,请用「交换」配合同一分隔符重新合并。

如何选择合适的分隔符

分隔符适合注意
逗号CSV 风格的行、快速数组本身含逗号的值
制表符表格粘贴、TSV 导出会把制表符转成空格的编辑器
竖线逗号很常见的文本Markdown 表格语法
分号欧洲地区的 CSV 文件同一文件里混用逗号
换行恢复列表、把逐行输出合并合并会让输出变成多行
空格把句子拆成单词带引号的短语会失去分组

当数据使用 ::、|| 或像 AND 这样的词等不常见分隔符时,自定义分隔符很有用。因为自定义输入按字面匹配,它可以包含那些本来具有特殊含义的字符。

实用套路

从一列数据构建 SQL IN 列表。 从表格复制值,用换行或逗号预设拆分,开启去空白和移除空条目,再交换为用同一分隔符合并。最后会得到一个紧凑的值列表,不过引号和括号仍需你自己加上。

把句子拆成单词。 用空格预设拆分,开启移除空条目。标点会跟着每个单词保留,如果需要裸词,还得再做一步清理。

在工具之间重排列表。 YAML 接受逗号分隔的流式序列,而 shell 脚本往往要每行一个值。按逗号拆分,复制这些行,粘贴到目标文件即可。

提交前核对数量。 输入和输出的计数器会告诉你工具实际看到多少项。如果一次合并产生的元素数超出预期,通常说明输入里的换行比你意识到的多,从富文本编辑器粘贴时尤其常见。

常见错误

拆分带引号的 CSV 行。 引号字段内部的分隔符仍被当作分隔符,列数因此偏多。涉及引号时请改用 CSV 解析器。

以为合并会自动加引号或转义。 它只插入分隔符。要据此构建 SQL IN 列表或 JSON 数组,引号或方括号得你亲手加。

粘贴数据时不开去空白。 看似无害的空格会破坏精确匹配查询,并制造出看起来重复的列表项。

选择了会出现在值里的分隔符。 如果字段可能含逗号,就改用竖线或制表符。最安全的分隔符是在数据里根本不出现的那个。

忘记分割与合并只有在清理选项一致时才互为逆操作。 拆分一个带尾部结束分隔符的字符串再合并时,如果开着移除空条目,最后一个空元素会被丢掉。

限制与边界情况

分隔符始终按字面处理,绝不会被当作正则表达式,因此不能用模式或字符类来拆分。多字符分隔符可用,但相互重叠的不行。空输入在清理前会拆成单个空元素;开着移除空条目时会变成零行。从 Windows 粘贴的文本会保留回车,除非开启去空白。两种模式都不排序、不去重、也不改变大小写,所以当列表需要的不只是重排格式时,请搭配排序或去重工具一起使用。

相关工具

常见问题

分割时会把我的分隔符当作正则表达式吗?

不会。分隔符在使用前会被转义,所以点、竖线、星号和加号等字符都按字面匹配。输入 | 只会按竖线字符拆分,而不会按正则的「或」运算符拆分。

为什么我引号包裹的 CSV 行被拆成了过多列?

这个工具按原始分隔符字符拆分,不理解 CSV 的引号规则。像 Doe, "John, Jr." 这样一行里有三个逗号,就会变成三段,尽管中间那个逗号在引号内。带引号的 CSV 请改用专门的解析器。

合并行时,Windows 的 CRLF 行尾会怎样?

合并只按换行符拆分输入,因此每一行会残留一个回车符。开启「去除首尾空白」会去掉这个多余的回车,所以从 Windows 或 CSV 导出的文本建议开启去空白。

能用合并模式拼出带引号的 SQL IN 列表吗?

不能直接做到。合并只在各值之间插入分隔符,不会加引号也不会转义,所以 red,green,blue 仍然只是 red,green,blue。你需要再做一遍,或在粘贴前先给每个值加引号。

每种模式下的元素数量是怎么计算的?

合并模式下,计数是去空白并移除空条目之后的输入行数。分割模式下,则是用分隔符切分、并经同样清理后得到的片段数。输出下方显示的数字是结果中的元素个数。

交换按钮到底做了什么?

交换会翻转模式并互换输入框与输出框。如果你把三行合并成了一个逗号分隔的字符串,交换会把该字符串放进输入框、切换到分割模式,并立即把它拆回原来的三行。

由 HandyTools Hub 团队审校 · 最后更新