相关疑难解决方法(0)

将逗号分隔的字符串转换为列表但忽略引号中的逗号

我如何转换"1,,2'3,4'"成列表?逗号分隔各个项目,除非它们在引号内.在这种情况下,逗号将包含在项目中.

这是理想的结果:['1', '', '2', '3,4'].我在另一个线程上发现忽略引号的一个正则表达式如下:

re.compile(r'''((?:[^,"']|"[^"]*"|'[^']*')+)''')
Run Code Online (Sandbox Code Playgroud)

但这给了我这个输出:

['', '1', ',,', "2'3,4'", '']
Run Code Online (Sandbox Code Playgroud)

我无法理解,这些额外的空字符串来自哪里,为什么两个逗号甚至都被打印出来,更不用说在一起了.

我自己尝试制作这个正则表达式:

re.compile(r'''(, | "[^"]*" | '[^']*')''')
Run Code Online (Sandbox Code Playgroud)

最终没有检测到任何东西,只是返回原来的清单.

我不明白为什么,它至少不应该检测到逗号?如果我?在逗号后添加一个,则会出现同样的问题.

python regex split delimiter

5
推荐指数
2
解决办法
2242
查看次数

标签 统计

delimiter ×1

python ×1

regex ×1

split ×1