我试图提取一个字符串的数字以及之前和之后的字符(不包括数字和空格)。的函数的预期收益是元组的列表,与具有形状的每个元组:使用Python查找与正则表达式重叠的序列
(previous_sequence, number, next_sequence)
例如:
string = '200gr T34S'
my_func(string)
>>[('', '200', 'gr'), ('T', '34', 'S')]
我的第一次迭代是使用:
def my_func(string):
res_obj = re.findall(r'([^\d\s]+)?(\d+)([^\d\s]+)?', string)
但是这个函数并没有达到我期望的效果,当我传递一个像'2AB3'
这样的字符串时,我想输出[('','2','AB'), ('AB','3','')]
,而是显示[('','2','AB'), ('','3','')]
,因为'AB'是以前输出的一部分。
我该如何解决这个问题?
您可以检查另一个答案和反馈! – SIslam