拆分逗号分隔的字符串

2024-04-20 03:21:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我有下面的字符串,我想要的是分裂它得到一个数组键:值对你知道吗

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等,因为文本可能属于不同的语言。你知道吗


Tags: orand字符串re元素数组字符price
2条回答

这应该做到:

re.split(', *(?=[^,]+?:)',string)

仅当后跟零个或多个空格以及以冒号结尾的字符序列(不包括逗号和冒号)时,才表示用逗号分隔。你知道吗

用你的线,它可以:

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

相关问题 更多 >