正则表达式Python,用于在所有空格中进行拆分

时间:2012-10-08 13:56:36

标签: python regex

  

可能重复:
  Split string on whitespace in 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来首先拆分它们。

3 个答案:

答案 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(" ")