我有一个正则表达式,看起来像:提取名称和正则表达式的跨度匹配组
rgx = '(?P<foo>ABC)(?P<bar>DEF)?(?P<norf>HIJK)'
获得匹配的字符串是没有问题的m.group(name)
。但是,我需要提取名称和范围的匹配组(甚至只是名称的跨度),并没有找到一种方法来做到这一点。我想这样做:
p = re.compile(p, re.IGNORECASE)
m = p.match(targetstring)
#then do something to set 'all' to the list of match objects
for mo in all
print mo.name() + '->' + mo.span()
因此,例如,输入字符串“ABCDEFHIJK”应该产生的输出:
'foo' -> (0, 3)
'bar' -> (3, 6)
'norf' -> (6, 10)
谢谢!
是什么'span'? – laike9m 2014-10-20 12:06:30
发布一个示例以及预期的输出。 – 2014-10-20 12:07:24
@ laike9m span是属于正则表达式MatchObject的一种方法。它告诉字符串的哪一部分是匹配的。 – Colin 2014-10-20 12:17:44