Python – 如何在分割字符串时忽略双引号中的空格?

参见英文答案 >
Split a string by spaces — preserving quoted substrings — in Python                                    16个

我的数据如下

string = ' streptococcus 7120 "File  being  analysed" rd873 '

我尝试使用n = string.split()拆分行,得到以下结果:

[streptococcus,7120,File,being,analysed,rd873]

我想拆分字符串忽略“”中的空格

# output expected :

[streptococcus,7120,File being analysed,rd873]

最佳答案 将re.findall与合适的正则表达式一起使用.我不确定你的错误案例是什么样的(如果有奇数引号怎么办?),但是:

filter(None, it.chain(*re.findall(r'"([^"]*?)"|(\S+)', ' streptococcus 7120 "File  being  analysed" rd873 "hello!" hi')))
> ['streptococcus',
   '7120',
   'File  being  analysed',
   'rd873',
   'hello!',
   'hi']

看起来不错.

点赞