python用至少2个空格分割一个字符串

新手上路,请多包涵

我只想在至少有两个或更多空格的地方拆分一个字符串。

例如

str = '10DEUTSCH        GGS Neue Heide 25-27     Wahn-Heide   -1      -1'
print(str.split())

结果:

 ['10DEUTSCH', 'GGS', 'Neue', 'Heide', '25-27', 'Wahn-Heide', '-1', '-1']

我希望它看起来像这样:

 ['10DEUTSCH', 'GGS Neue Heide 25-27', 'Wahn-Heide', '-1', '-1']

原文由 Eagle 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 629
2 个回答
>>> import re
>>> text = '10DEUTSCH        GGS Neue Heide 25-27     Wahn-Heide   -1      -1'
>>> re.split(r'\s{2,}', text)
['10DEUTSCH', 'GGS Neue Heide 25-27', 'Wahn-Heide', '-1', '-1']

在哪里

  • \s 匹配任何空白字符,如 \t\n\r\f\v 等等
  • {2,}一个重复,意思是“2个或更多”

原文由 unutbu 发布,翻译遵循 CC BY-SA 4.0 许可协议

正如已经指出的那样, str 不是您的字符串的好名称,因此使用 words 代替:

 output = [s.strip() for s in words.split('  ') if s]

.split(’ ‘) - 带有两个空格 - 将为您提供一个列表,其中包含空字符串以及带有尾随/前导空格的项目。列表理解遍历该列表,保留任何非空白项( if s ),并且 .strip() 处理任何前导/尾随空格。

原文由 toxotes 发布,翻译遵循 CC BY-SA 3.0 许可协议

推荐问题