12

Python中是否有一个函数可以在不忽略结果列表中的空格的情况下拆分字符串?

例如:

s="This is the string I want to split".split()

给我

>>> s
['This', 'is', 'the', 'string', 'I', 'want', 'to', 'split']

我想要类似的东西

['This',' ','is',' ', 'the',' ','string', ' ', .....]
4

4 回答 4

41
>>> import re
>>> re.split(r"(\s+)", "This is the string I want to split")
['This', ' ', 'is', ' ', 'the', ' ', 'string', ' ', 'I', ' ', 'want', ' ', 'to', ' ', 'split']

在 re.split() 中使用捕获括号会导致函数也返回分隔符。

于 2008-09-22T07:08:04.677 回答
4

我认为标准库中没有一个函数可以自行完成,但是“分区”很接近

最好的方法可能是使用正则表达式(这就是我在任何语言中的做法!)

import re
print re.split(r"(\s+)", "Your string here")
于 2008-09-22T07:08:59.463 回答
2

愚蠢的回答只是为了它:

mystring.replace(" ","! !").split("!")
于 2013-04-20T18:34:12.157 回答
1

你想要做的最困难的部分是你没有给它一个可以分裂的角色。split() 在您提供给它的字符上分解一个字符串,并删除该字符。

也许这可能会有所帮助:

s = "String to split"
mylist = []
for item in s.split():
    mylist.append(item)
    mylist.append(' ')
mylist = mylist[:-1]

凌乱,但它会为你做的伎俩......

于 2008-09-22T07:07:58.357 回答