1

可能重复:
在 python 中的空格上拆分字符串

我有一个这样的字符串:

['.text      0x1000       0xb51b       0xb600       6.259216    ']

我想把它分成这个:

[.text, 0x1000, 0xb51b... etc]

到目前为止,我已经尝试过: re.split("( ) ", b) 和 re.split("[ \t ]", b)

但无济于事。我得到类似的东西:

.['.text', ' ', '0x1000', ' ', '0xb51b', ' ', '0xb600', ' ', '6.259216', ' ', '']

或者其他一些有更多空格的。我知道我可以从字符串中删除空格,但我更愿意直接使用 RE 来拆分它们。

4

3 回答 3

7

为什么不只使用常规str.split

'.text      0x1000       0xb51b       0xb600       6.259216    '.split()

引用文档:

如果 sep 未指定或为 None,则应用不同的拆分算法:连续空格的运行被视为单个分隔符,如果字符串具有前导或尾随空格,则结果将在开头或结尾不包含空字符串。


顺便说一句,我发现 using mystring.split(None)(而不是mystring.split())有时需要牢记,因为它允许您不“硬编码”拆分算法。

于 2012-10-08T13:57:28.113 回答
2

尝试这个:

import re
re.split("\s*", yourInputString.strip()) # result as List
于 2012-10-08T14:09:01.980 回答
1

另一种选择是首先清除多个空格,然后用单个空格替换它们。之后,您split(" ")使用一个空格进行操作:

re.sub(r"  +"," ", text).split(" ")
于 2012-10-08T14:03:23.217 回答