Regexp将值子模式匹配为子阵列

Regexp将值子模式匹配为子阵列,regex,python-3.x,Regex,Python 3.x,我的正则表达式: 我明白了 但是,我得到了所有的“num”值(所有数字),它们都在一个数组“num”中 我必须得到它: 名字=房子 num=[3 4 5 6 7 8 9] 你怎么了? p、 s:python正则表达式 模式必须分别查找所有数字(数组)。是否执行(?Phouse)(?:\s(?p(\d\s+)+)\d?+?执行此任务 我以粗体添加到您的原件中:(?Phouse)(?:\s(?p(\d\s+))\d?)+ 然后找到最后一个数字,而不是全部。我需要一切 re.match查找全部,但只返

我的正则表达式: 我明白了 但是,我得到了所有的“num”值(所有数字),它们都在一个数组“num”中 我必须得到它: 名字=房子 num=[3 4 5 6 7 8 9] 你怎么了? p、 s:python正则表达式

模式必须分别查找所有数字(数组)。是否执行
(?Phouse)(?:\s(?p(\d\s+)+)\d?+?
执行此任务

我以粗体添加到您的原件中:(?Phouse)(?:\s(?p(\d\s+)\d?)+


然后找到最后一个数字,而不是全部。我需要一切

re.match
查找全部,但只返回最后一个。由于您必须对匹配项进行后期处理,以便将它们分配给Python变量
name
num
,因此请简化模式:

import re
test_string = 'house 3 44 555 6666 777 88 9'
m = re.match(r'(house)((\s\d+)+)', test_string)
name = m.group(1)
num = [int(s) for s in m.group(2).split()]

使重复变慢,这就是为什么它只匹配一个数字。检查数字,然后找到最后一个数字,而不是全部数字。我需要全部。这种模式不适合,因为它不能单独找到所有的数字(数组)。请将此要求添加到您的帖子中,我将删除我的答案。