我的正则表达式: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正则表达式
模式必须单独找到所有数字(数组)。
答案 0 :(得分:0)
(?P<name>house)(?:\s(?P<num>(\d\s+)+)\d?)+?
能完成这项工作吗?
我用粗体添加原文:(?Phouse)(?:\ s(?P (\ d \ s +)+ ) \ d?)+ ?
答案 1 :(得分:0)
然后找到最后一位数字,而不是全部。我需要所有人。
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()]