You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从re.finditer返回的SRE_Match对象中获取span元组与匹配字符串?

获取SRE_Match对象中的span和匹配字符串

嘿,这问题我熟!你已经通过re.finditer()拿到了匹配对象的列表,接下来只需要调用每个SRE_Match对象的内置方法,就能轻松拿到你要的内容啦。

具体方法:

  • 要获取匹配到的字符串:调用group()方法,默认不传参数就返回整个匹配的内容。比如你代码里的m[0].group()就能得到'(xf)'。
  • 要获取位置元组span:调用span()方法,它会直接返回匹配内容在原字符串中的起始和结束索引,也就是你要的(7, 11)。

修改后的完整代码示例:

import re
s = 'sd(asdf(xf))fg'
# 直接遍历finditer返回的迭代器就行,不用转成列表也可以
for match in re.finditer('\([A-z ]+\)', s):
    print(f"匹配的字符串:{match.group()}")
    print(f"对应的span元组:{match.span()}")

运行这段代码后,你就能看到如下输出:

匹配的字符串:(xf)
对应的span元组:(7, 11)

其实这些方法在官方文档里是明确写了的,可能你之前没注意到每个匹配对象的这些属性~

内容的提问来源于stack exchange,提问作者Daniel Restrepo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 08:05:30