You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用正则表达式合并CSV文件中首字段相同的行?

可以用正则实现,附具体方案

当然可以用正则实现这个需求,不过得在支持多行匹配和反向引用的工具里操作(比如VS Code、Notepad++、GNU sed等),下面是具体步骤:

正则替换方案(以VS Code为例)

  1. 打开你的CSV文件,按下Ctrl+H调出替换面板
  2. 点击面板右上角的「正则表达式」按钮(图标是.*)
  3. 在「查找内容」框输入:
^([^,]+)(.*)\s*\n\1(.*)$
  1. 在「替换为」框输入:
$1$2$3
  1. 点击「全部替换」,就能得到你想要的结果

正则语法解释

  • ^([^,]+):匹配每行开头到第一个逗号前的标识,把它存为分组1
  • (.*):匹配标识后面的所有内容,存为分组2
  • \s*\n:匹配行尾的空白字符(包括换行)
  • \1:反向引用分组1的内容,也就是和上一行相同的标识
  • (.*):匹配下一行标识后面的所有内容,存为分组3

替换时把分组1+分组2+分组3拼接起来,就实现了合并两行的效果。

命令行工具方案(GNU sed)

如果习惯用命令行处理,可以用GNU sed执行以下命令:

sed -E ':a;N;s/^([^,]+)(.*)\n\1(.*)/\1\2\3/;ta' input.csv > output.csv

这个命令会循环查找并合并连续的相同标识行。

注意事项

  • 确保每对相同标识的行是连续相邻的,否则正则不会匹配到
  • 不同工具的正则语法可能有细微差异,比如Notepad++里不需要额外设置多行模式,但VS Code要确保正则模式开启

内容的提问来源于stack exchange,提问作者freewheeler

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 05:24:17