这个问题在这里已经有了答案:




8年前关闭。







我无法访问以下正则表达式中第三个或第五个元素的组:

>>> x = 'f 167 2958 335 3103 0'
>>> re.search('.(\s\d+){5}', x).group()
'f 167 2958 335 3103 0'
>>> re.search('.(\s\d+){5}', x).group(1)
' 0'
>>> # how do i access no 2958 and 3103

我知道我可以使用模式 = '.\s\d+\s(\d+)\s\d+\s(\d+)\s\d+' 实现上述目标,但那很蹩脚。

谢谢,
阿米特

最佳答案

您可以为此使用 re.findall

result = re.findall('\s\d+', x)

print result[1]  # 2958
print result[3]  # 3103

关于python正则表达式重复组匹配,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11659068/

10-12 21:50