在Python中将字符串拆分为列表(但不分隔相邻的数字)

Wra*_*ath 4 python string list

例如,我有:

string = "123ab4 5"
Run Code Online (Sandbox Code Playgroud)

我希望能够得到以下列表:

["123","ab","4","5"]
Run Code Online (Sandbox Code Playgroud)

而不是列表(字符串)给我:

["1","2","3","a","b","4"," ","5"]
Run Code Online (Sandbox Code Playgroud)

Joh*_*ica 8

查找一个或多个相邻的数字(\d+),如果失败,则查找非数字的非空格字符([^\d\s]+).

>>> string = '123ab4 5'
>>> import re
>>> re.findall('\d+|[^\d\s]+', string)
['123', 'ab', '4', '5']
Run Code Online (Sandbox Code Playgroud)

如果您不希望这些字母连接在一起,请尝试以下方法:

>>> re.findall('\d+|\S', string)
['123', 'a', 'b', '4', '5']
Run Code Online (Sandbox Code Playgroud)