import re
match=re.search(r'[1-9]\d{5}','BIT100081')
if match:
    print(match.group(0))
#输出 100081

type(match)#输出 _sre.SRE_Match

(参考)爬虫8-re库的match对象,贪婪匹配,最小匹配

 (参考)爬虫8-re库的match对象,贪婪匹配,最小匹配

import re
m=re.search(r'[1-9]\d{5}','BIT100081 VHT167081')
if m:
    print(m.group(0))
#输出 100081

m.string#输出 'BIT100081 VHT167081'
m.re#输出 re.compile(r'[1-9]\d{5}', re.UNICODE)
m.pos #输出0
m.endpos#输出 19
m.group(0)#输出 100081
m.start()#输出3
m.end()#输出9
m.span()#输出(3,9)

re库的贪婪匹配和最小匹配

re库默认采用贪婪匹配,即输出匹配最长的子串

 如何输出最小匹配,加?号

match=re.search(r'PY.*N','PYANBNCNDN')
match.group(0)
#贪婪匹配,输出PYANBNCNDN

match=re.search(r'PY.*?N','PYANBNCNDN')
match.group(0)
#加?号后,最小匹配,输出PYAN

(参考)爬虫8-re库的match对象,贪婪匹配,最小匹配