我试图在 python 中做一些模式匹配。但是我不明白为什么我只匹配一个就得到第二个匹配。
import re
def Main():
m = "12312312ranger12312319"
pattern = re.compile('(\d$)')
r = pattern.search(m)
if r:
print "Matched " + r.group(0) + " Second " + r.group(1)
else:
print "Not Matched"
if __name__ == '__main__':
Main()
这给了我这样的输出
Matched 9 Second 9
我认为 r.group(1) 根本不应该存在。我理解错了吗?
请您参考如下方法:
group(0) 将始终返回匹配的整个文本,无论它是否在组中被捕获。参见示例:
import re
def Main():
m = "12312312ranger12312319"
pattern = re.compile('\d(\d$)')
r = pattern.search(m)
if r:
print r.group(0) + ' ' + r.group(1)
else:
print "Not Matched"
if __name__ == '__main__':
Main()
输出:
19 9
