我想在正则表达式的匹配中获取组的索引。注意下图:你可以看到它建立了 3 场比赛。左侧显示 Match 的索引和 Group 1 的索引。我想在 Python 中获取第 1 组的索引,我该怎么做?下面的图片显示了 Python 的返回值:
2 回答
慕雪6442864
TA贡献1812条经验 获得超5个赞
您需要传递一个参数来i.span()指定要为其查找跨度的组(否则,它只是默认为整个匹配)。像这样:
import re
s = 'aaadaa'
matches = re.finditer(r'(?<=(aa))', s)
for i in matches:
print(i.span(1))
# 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()
凤凰求蛊
TA贡献1825条经验 获得超4个赞
首先要启用重叠,您需要使用前瞻:
s = 'aaadaa'
r = re.compile(r'a(?=a)')
然后你可以使用对象start()上的方法Match来获取匹配的索引:
>>> [print(x.start()) for x in r.finditer(s)]
0
1
4
添加回答
举报
0/150
提交
取消