当使用Python string函数split()时,是否有人有一个巧妙的技巧将双引号包围的项视为不可拆分的词?
假设我只想在空白处分开,我有这个:
>>> myStr = 'A B\t"C" DE "FE"\t\t"GH I JK L" "" ""\t"O P Q" R'
>>> myStr.split()
['A', 'B', '"C"', 'DE', '"FE"', '"GH', 'I', 'JK', 'L"', '""', '""', '"O', 'P', 'Q"', 'R']
我希望将双引号内的任何内容都视为一个单词,即使嵌入了空格,因此希望以以下方式结束:
['A', 'B', 'C', 'DE', 'FE', 'GH I JK L', '', '', 'O P Q', 'R']
或者至少这个然后我去掉双引号:
['A', 'B', '"C"', 'DE', '"FE"', '"GH I JK L"', '""', '""', '"O P Q"', 'R']
有什么非regex的建议吗?
@Rob:如果regexp解决方案这么简单,为什么没有regex?
我建议您使用
re
搜索模式“[^”]*”,并仅对其余部分应用string.split。可以实现处理所有相关字符串部分的递归函数。使用} 可能就是您要寻找的:
str.split()
将无法获得此行为。如果您能够接受它所做的相当复杂的解析(比如忽略前面有反斜杠的双引号),那么^{相关问题 更多 >
编程相关推荐