不使用Python字符串split()分割双引号单词吗?

发布于 2021-01-29 14:58:39

使用Python字符串函数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']

有非正则表达式建议吗?

关注者
0
被浏览
99
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    您将无法通过使用此行为str.split()。如果您可以进行相当复杂的解析(例如忽略双引号和反斜杠),shlex.split()那么您可能正在寻找:

    >>> shlex.split(myStr)
    ['A', 'B', 'C', 'DE', 'FE', 'GH I JK L', '', '', 'O P   Q', 'R']
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看