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

如何仅按顶级分隔符拆分字符串,兼容引号与括号嵌套场景?

如何仅按顶级分隔符拆分字符串,兼容引号与括号嵌套场景?

我想要写一个函数,它接收一个逗号分隔的字符串,能按照分隔符拆分,但要保留*(可能嵌套的)引号和括号包裹的部分*。比如常见的逗号分隔键值对a=b,c=d,但还有更复杂的场景——比如包含分隔符甚至引号的逗号分隔shell命令,这类情况用简单正则根本搞不定。

一开始我想偷懒用csv模块解决,结果试了个简单例子就翻车了:

>>> s = "a='[1,2,3]',c=d"
>>> list(csv.reader([s], delimiter=',', quotechar="'"))  # 预期结果: ["a='[1,2,3]'", "c=d"]
[["a='[1", '2', "3]'", 'c=d']]

更复杂的情况比如a='[1,"3,14",3]',c="[4,5,6]"我都不敢尝试了。

想问问有没有办法让csv.reader乖乖输出['a=..', 'c=..']这种符合预期的结果?或者有没有其他Python内置的字符串处理能力能搞定这个需求?

备注:内容来源于stack exchange,提问作者frans

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.17 12:08:19