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对象,贪婪匹配,最小匹配

 

相关文章:

  • 2021-11-29
  • 2021-07-20
  • 2021-10-30
  • 2021-11-29
  • 2021-11-29
  • 2021-07-04
  • 2021-08-07
  • 2022-01-13
猜你喜欢
  • 2021-06-09
  • 2021-11-29
  • 2021-11-29
  • 2022-12-23
  • 2021-09-25
  • 2022-12-23
  • 2021-11-29
相关资源
相似解决方案