我有一个像这样的字符串:
['.text 0x1000 0xb51b 0xb600 6.259216 ']
我想把它分成这个:
[.text, 0x1000, 0xb51b... etc]
到目前为止,我已尝试过: re.split(“()”,b) 和 re.split(“[\ t ]”,b)
但无济于事。我得到的结论是:
.['.text', ' ', '0x1000', ' ', '0xb51b', ' ', '0xb600', ' ', '6.259216', ' ', '']
或其他一些有更多空格的人。我知道我可以从字符串中删除空格,但我宁愿直接使用RE来首先拆分它们。
答案 0 :(得分:7)
为什么不使用常规str.split
?
'.text 0x1000 0xb51b 0xb600 6.259216 '.split()
引用文档:
如果未指定sep或者为None,则应用不同的拆分算法:连续空格的运行被视为单个分隔符,如果字符串具有前导或尾随,则结果将在开头或结尾处不包含空字符串空格。
顺便说一下,我发现使用mystring.split(None)
(而不是mystring.split()
)有时候要记住,因为它可以让你不“硬编码”分裂算法
答案 1 :(得分:2)
试试这个:
import re
re.split("\s*", yourInputString.strip()) # result as List
答案 2 :(得分:1)
另一种选择是首先清除多个空格,然后用单个空格替换它们。之后,您使用一个空格执行split(" ")
:
re.sub(r" +"," ", text).split(" ")