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

how to use python re.split to split string but keep digits?

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

Example: s = "100,[+split"
The result should be ["100", ",", "[", "+", "s", "p", "l", "i", "t"]

我尝试过使用re.split(r'[A-Za-z]+|\d+', s)re.findall(r'[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:

import re
s = "100,[+split" 
new_s = re.findall('\d+|[a-zA-Z\W]', s)

输出:

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