我有一个这样的字符串:
"hello world foo bar"
我想在单词的开头和结尾分开它,就像这样:
["hello", " ", "world", " ", "foo", " ", "bar"]
答案 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+
字符序列作为结果列表的单独项目