Skip to main content
 首页 » 编程设计

python之在 python 中获得比预期更多的匹配

2025年05月04日14linjiqin

我试图在 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