如何使用 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']
我是 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']