如何使用python re.split分割字符串,但保留数字?

如何使用python re.split分割字符串,但保留数字?,python,string,split,digits,Python,String,Split,Digits,我是python学习者。我想使用python re.split将字符串拆分为单个字符,但我不想拆分数字 Example: s = "100,[+split" The result should be ["100", ",", "[", "+", "s", "p", "l", "i", "t"] 我尝试使用re.splitr'[A-Za-z]+\d+',s和re.findallr'[0-9]+]\d+',s,但我确实不擅长使用这些方法。有人能帮我吗?非常感谢 [re.search('\d*',

我是python学习者。我想使用python re.split将字符串拆分为单个字符,但我不想拆分数字

Example: s = "100,[+split"
The result should be ["100", ",", "[", "+", "s", "p", "l", "i", "t"]
我尝试使用re.splitr'[A-Za-z]+\d+',s和re.findallr'[0-9]+]\d+',s,但我确实不擅长使用这些方法。有人能帮我吗?非常感谢

[re.search('\d*', s).group()] + [val for val in s if not val.isdigit()]
这将获得此特定字符串所需的输出,但如果不了解所需的字符串类型,则很难说它是否在所有情况下都能工作

其工作原理是搜索字符串中的数字,然后向该字符串中添加所有非数字字符的列表

输出为:

 ['100', ',', '[', '+', 's', 'p', 'l', 'i', 't']
您可以使用re.findall:

输出:

['100', ',', '[', '+', 's', 'p', 'l', 'i', 't']

嗯…是的,我看到你的解决方案是将数字与非数字连接起来。但是我对[re.search'\d*',s.group]有点困惑,它似乎只找到第一个数字。假设现在我们的s=100,[+spli25t3,结果仍然与我们之前的输出相同。此外,如果我们成功找到几个数字,可能串联方法“+”会改变所有字符的顺序。谢谢你Ajax1234!因此它应该使用findall而不是split。这对我来说是一项新技能!
['100', ',', '[', '+', 's', 'p', 'l', 'i', 't']