您的正则表达式仅包含一对括号(一个捕获组),因此您在匹配项中仅得到一个组。如果在捕获组(
+或
*)上使用重复运算符,则每次重复该组时,该组都会被“覆盖”,这意味着仅捕获最后一个匹配项。
在这里的示例中,最好
.split()结合使用,regex和:
lun_q = 'Lun:s*(d+(?:s+d+)*)'s = '''Lun: 0 1 2 3 295 296 297 298'''r = re.search(lun_q, s)if r: luns = r.group(1).split() # optionally, also convert luns from strings to integers luns = [int(lun) for lun in luns]



