用引号括起来的逗号分隔

时间:2014-08-26 08:47:49

标签: python regex

我正在尝试使用正则表达式(re.split)拆分字符串,但是因为我一直在使用正则表达式,所以已经有一段时间了。

字符串如下:

string = '"first, element", second element, third element, "fourth, element", fifth element'

我想在每个逗号上拆分字符串,除非子字符串用引号括起来。

输出应如下所示:

output = ['"first, element"', 'second element', 'third element', '"fourth, element"', 'fifth element']

2 个答案:

答案 0 :(得分:4)

您想使用csv模块而不是重新发明它。

答案 1 :(得分:2)

您可以尝试以下代码,

>>> import re
>>> string = '"first, element", second element, third element, "fourth, element", fifth element'
>>> m = re.split(r', (?=(?:"[^"]*?(?: [^"]*)*))|, (?=[^",]+(?:,|$))', string)
>>> m
['"first, element"', 'second element', 'third element, "fourth, element"', 'fifth element']

正则表达式从here被盗: - )