我正在努力根据逗号拆分此字符串,但应忽略双引号内的逗号。
cStr = 'aaaa,bbbb,"ccc,ddd"'
expected result : ['aaaa','bbbb',"ccc,ddd" ]
请帮助我,我尝试了以下解决方案中提到的不同方法,但无法解决此问题[我不允许使用 csv、pyparsing 模块]
之前已经针对以下输入提出了类似的问题。
cStr = '"aaaa","bbbb","ccc,ddd"'
result = ['"aaa"','"bbb"','"ccc,ddd"']
答案 0 :(得分:2)
我处理这个问题的常用方法是使用一个正则表达式交替,在非引用的 CSV 术语之前,先热切地匹配双引号术语:
import re
cStr = 'aaaa,bbbb,"ccc,ddd"'
matches = re.findall(r'(".*?"|[^,]+)', cStr)
print(matches) # ['aaaa', 'bbbb', '"ccc,ddd"']
答案 1 :(得分:0)
您可以使用列表理解,不需要其他库:
filter
出:
case
答案 2 :(得分:0)
这可以通过三个步骤来实现-
cstr = 'aaaa,bbbb,"ccc,ddd","eee,fff,ggg"'
步骤 1-
X = cstr.split(',"')
步骤 2-
regular_list = [i if '"' in i else i.split(",") for i in X ]
步骤 3-
final_list = []
for i in regular_list:
if type(i) == list:
for j in i:
final_list.append(j)
else:
final_list.append('"'+i)
最终输出 -
['aaaa', 'bbbb', '"ccc,ddd"', '"eee,fff,ggg"']