Regexp匹配值子模式为子数组

时间:2015-12-29 10:27:40

标签: regex python-3.x

我的正则表达式:https://regex101.com/r/oF7pM8/1 我得到http://joxi.ru/J2b54KaI40bbwm 但是,我得到所有“num”值(所有数字),并且它们在数组“num”中 我必须得到它: name = house num = [3 4 5 6 7 8 9] 做错了什么? p.s。:python正则表达式

模式必须单独找到所有数字(数组)。

2 个答案:

答案 0 :(得分:0)

(?P<name>house)(?:\s(?P<num>(\d\s+)+)\d?)+?能完成这项工作吗?

我用粗体添加原文:(?Phouse)(?:\ s(?P (\ d \ s +)+ \ d?)+ ?

答案 1 :(得分:0)

  

然后找到最后一位数字,而不是全部。我需要所有人。

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

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()]