【问题标题】:Split on more than one space?拆分多个空间?
【发布时间】:2021-01-23 23:01:32
【问题描述】:

我有一个程序需要分割以下格式的行:

IDNumber      Firstname Lastname    GPA      Credits

但我想将FirstnameLastname 保留在同一个字符串中。

是否有任何简单的方法可以做到这一点(除了分成五个字符串而不是四个字符串)并且以某种方式让 split 方法仅在有多个空格时才拆分?

【问题讨论】:

  • 被2个空格分割? - 实际上这是一个建议。但我会将 ti 拆分为一个空格并重新加入第 1 项和第 2 项。
  • 2 或更多个空格
  • 使用正则表达式; re.split on r'\s{2,}'(两个或更多空白字符)。
  • 您期望结果是什么?

标签: python string split


【解决方案1】:

使用正则表达式分割两个或多个空格

>>> re.split(r" {2,}", s)
['IDNumber', 'Firstname Lastname', 'GPA', 'Credits']

如果你想在两个或多个空白字符上分割,那么使用:

re.split(r"\s{2,}", s)

例如:

>>> s = "hello, world\t\tgoodbye cruel world"
>>> print(s)
hello, world        goodbye cruel world
>>> re.split(r"\s{2,}", s)
['hello, world', 'goodbye cruel world']

【讨论】:

  • 这才是真正的答案
【解决方案2】:

如果你想用 any 空格分割,你可以使用str.split:

mystr.split()

# ['IDNumber', 'Firstname', 'Lastname', 'GPA', 'Credits']

对于两个或更多个空格:

list(filter(None, mystr.split('  ')))

# ['IDNumber', 'Firstname Lastname', 'GPA', 'Credits']

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-09
    • 2011-07-06
    • 2015-10-04
    • 2017-09-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多