在单词的开头和结尾分割一个字符串

时间:2018-01-23 23:16:17

标签: python split

我有一个这样的字符串:

"hello world   foo  bar"

我想在单词的开头和结尾分开它,就像这样:

["hello", " ", "world", "   ", "foo", "  ", "bar"]

1 个答案:

答案 0 :(得分:4)

使用re.split()功能:

import re

s = 'hello world   foo  bar'
result = re.split(r'(\s+)', s)
print(result)

输出:

['hello', ' ', 'world', '   ', 'foo', '  ', 'bar']
  • (\s+) - 在re.split()函数模式中使用时,通过模式\s+(一个或多个空格字符)的出现将输入字符串拆分。如果在模式中使用捕获括号(...),则模式中所有组的文本也将作为结果列表的一部分返回

https://docs.python.org/3.6/library/re.html?highlight=re#re.split

或与re.findall()函数相同的结果:

result = re.findall(r'\S+|\s+', s)
  • \S+|\s+ - 正则表达式交替组;捕获非空白\S+和空白\s+字符序列作为结果列表的单独项目