我有一個正則表達式,看起來像:提取名稱和正則表達式的跨度匹配組
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