如何在 Python 中的正则表达式中获取匹配组的索引?

我想在正则表达式的匹配中获取组的索引。注意下图:

http://img2.mukewang.com/62289bb60001b09f10880402.jpg

你可以看到它建立了 3 场比赛。左侧显示 Match 的索引和 Group 1 的索引。我想在 Python 中获取第 1 组的索引,我该怎么做?下面的图片显示了 Python 的返回值:

http://img3.mukewang.com/62289bbf0001527804120159.jpg


慕婉清6462132
浏览 327回答 2
2回答

慕雪6442864

您需要传递一个参数来i.span()指定要为其查找跨度的组(否则,它只是默认为整个匹配)。像这样:import res = 'aaadaa'matches = re.finditer(r'(?<=(aa))', s)for i in matches:&nbsp; &nbsp; print(i.span(1))&nbsp;# This will work since you only have one capturing group, but if you have more than one you may have to make separate calls to .span()

凤凰求蛊

首先要启用重叠,您需要使用前瞻:s = 'aaadaa'r = re.compile(r'a(?=a)')然后你可以使用对象start()上的方法Match来获取匹配的索引:>>> [print(x.start()) for x in r.finditer(s)]014
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python