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

求能按逗号分割但保留双引号内原子字符串的正则表达式

正则表达式提取带引号包裹的CSV字段(含分隔符)

需求说明

需要从以下字符串中提取所有字段,双引号包裹的内容(即使内部包含逗号)视为一个整体,提取结果保留字段后的逗号(最后一个字段除外):

2022-09-22T03:55:59.433Z,,,,sm100,"sm100.w.gm.net=25 2.7.2 mailto:012323@eu-w1.as.com [IId=200023, Hostname=mky.wgm.net] Queued info",,SMTP,HAREDIRECT

预期提取结果:

2022-09-22T03:55:59.433Z,
,
,
,
sm100,
"sm100.w.gm.net=25 2.7.2 mailto:012323@eu-w1.as.com [IId=200023, Hostname=mky.wgm.net] Queued info",
,
SMTP,
HAREDIRECT

解决方案正则

使用以下正则匹配所有字段(含后续分隔符):

(?:"[^"]*"|[^,]*)(?:,|$)

正则逻辑解释

  • (?:"[^"]*"|[^,]*):匹配两种内容
    • "[^"]*":匹配双引号包裹的完整内容,内部逗号不会被拆分
    • [^,]*:匹配非逗号的任意字符,包括空字符串,对应连续逗号之间的空字段
  • (?:,|$):匹配字段后面的逗号,或者字符串结尾,保证最后一个字段也能被匹配

现有正则的问题

你之前尝试的,(?![\" ])仅能排除部分逗号,但无法识别引号的开闭状态,会错误拆分引号内部的内容,同时也无法直接提取出包含空字段的完整结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 01:45:31