参见英文答案 >
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']
看起来不错.