我匹配多个正则表达式模式与非常长的字符串(最多10个字符)。有没有办法知道我的哪些正则表达式模式报告在Python中匹配?或者我应该为每个模式分别做正则表达式?
pat=re.compile('C[GT]GG|A[AT]TA|T[TG]TA')
for m in pat.finditer(longString):
print m.start(), m.end()
# how to know which pat matched?
答案 0 :(得分:1)
您可以使用
m.group()
查看正则表达式的哪一部分符合您的输入。
>> for m in pat.finditer('pat290'):
... print m.start(), m.end(), m.group()
...
0 4 pat2
>>> for m in pat.finditer('pat3789'):
... print m.start(), m.end(), m.group()
...
0 4 pat3
>>> for m in pat.finditer('some-pat1234567'):
... print m.start(), m.end(), m.group()
...
5 9 pat1