Python 拆分逗号分隔的字符串

Python 拆分逗号分隔的字符串,python,regex,string,Python,Regex,String,我有下面的字符串,我想要的是将其拆分以获得一个键:值对数组 color:'White', color:('White' or 'Black'),color:'YELLOW,BLACK', price: [11,12], price:{13, 14}, price:[11,13 },price:{ 11,13], color:('White' and 'Black') 给定上面的字符串,我想得到一个包含以下元素的数组- color:'White' color:('White' or 'Black

我有下面的字符串,我想要的是将其拆分以获得一个键:值对数组

color:'White', color:('White' or 'Black'),color:'YELLOW,BLACK', price: [11,12], price:{13, 14}, price:[11,13 },price:{ 11,13], color:('White' and 'Black')
给定上面的字符串,我想得到一个包含以下元素的数组-

color:'White'
color:('White' or 'Black')
color:'YELLOW,BLACK'
price:[11,12]
price:{13, 14}
price:[11,13 }
price:{ 11,13]
color:('White' and 'Black')
我可以通过逐个字符解析字符串并适当地组成组来完成上述操作。我尝试了一些regexp,但是,它们似乎都失败了

我试图用Python实现这一点,不确定这是否重要。这是我试过的-

re.split(r'(, *(?=.*:))', "color:'White',color:('White' or 'Black'),color:'DEF,GHI',price:[11,12], price:{13,14}, price:[11,13},price:{11,13]")
单引号之间的字符可以是字母数字、unicode等的任意组合,因为文本可能属于不同的语言。

这应该可以做到:

re.split(', *(?=[^,]+?:)',string)
仅当后跟零个或多个空格以及以冒号结尾的字符序列(不包括逗号和冒号)时,表示在逗号上拆分

使用字符串,它将提供:

["color:'White'",
 "color:('White' or 'Black')",
 "color:'YELLOW,BLACK'",
 'price: [11,12]',
 'price:{13, 14}',
 'price:[11,13 }',
 'price:{ 11,13]']

你提到曾经尝试过的事情;为什么不给我们看一下呢?
.split(',')
有什么问题吗?我想在
价格:{11,13}
颜色:'YELLOW,BLACK'
@Veedrac:我已经更新了我的问题。@gotuskar,那它怎么办?它不限于字母字符。单引号中的文本可以是任意内容,字母数字,等等,使用非贪婪匹配。拆分是否真的保留了那样的逗号?现在的答案是肯定的。@isedev:太好了,非常感谢。我确实试过调整你的答案,但仍在努力。