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

时间:2018-01-31 17:42:31

标签: python string split digits

我是一名蟒蛇学习者。我想使用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),但我真的不擅长使用这些方法。有人能帮我吗?非常感谢。

2 个答案:

答案 0 :(得分:1)

您可以使用re.findall

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

输出:

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

答案 1 :(得分:0)

[re.search('\d*', s).group()] + [val for val in s if not val.isdigit()]

这可以获得这个特定字符串所需的输出,但是在不知道更多关于你期望的字符串类型的情况下很难说它是否适用于所有情况。

这通过在字符串中搜索数字,然后向其添加非数字的所有字符的列表来实现。

输出是:

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