我正在尝试使用正则表达式(re.split)拆分字符串,但是因为我一直在使用正则表达式,所以已经有一段时间了。
字符串如下:
string = '"first, element", second element, third element, "fourth, element", fifth element'
我想在每个逗号上拆分字符串,除非子字符串用引号括起来。
输出应如下所示:
output = ['"first, element"', 'second element', 'third element', '"fourth, element"', 'fifth element']
答案 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被盗: - )