Python如何拆分:';A、 “B”是;Don';请不要分开;,D';?
有没有一种Pythonic方法可以通过逗号分割行,其中某些行的短语包含不应用作分隔符的逗号?例如,“Split this?,No!”应该保持在一块,即使它有一个(非分隔符)逗号。另外,请注意未加引号的'def',它应该放在一起。还要注意F和G之间的空字段 这:Python如何拆分:';A、 “B”是;Don';请不要分开;,D';?,python,regex,split,Python,Regex,Split,有没有一种Pythonic方法可以通过逗号分割行,其中某些行的短语包含不应用作分隔符的逗号?例如,“Split this?,No!”应该保持在一块,即使它有一个(非分隔符)逗号。另外,请注意未加引号的'def',它应该放在一起。还要注意F和G之间的空字段 这: 'A,B,"Split this?, No!",D E F,,G' 当分割应产生: ['A', 'B', 'Split this? No!', 'D E F', '', 'G'] shlex.split(l
'A,B,"Split this?, No!",D E F,,G'
当分割应产生:
['A', 'B', 'Split this? No!', 'D E F', '', 'G']
shlex.split(line)
没有这样做re.findall(r'(\w+|“*?”),a)
分解:def对于正则表达式解决方案:
>>> import csv
>>> rows = csv.reader(['A,B,"Split this?, No!",D E F,G'])
>>> rows.next()
['A', 'B', 'Split this?, No!', 'D E F', 'G']
你可以这样捕捉你想要的东西
(".*?"|[^,]+)
或者像这样用不带引号的逗号分开
,(?=(?:(?:[^"]*"){2})*[^"]*$)
您可以按此拆分。请参阅演示
你的意思是除了使用
csv
?这样一个经典的。。。
,(?=(?:[^"]*"[^"]*")*[^"]*$)