小白学爬虫笔记12---正则表达式-Re库的Match方法&最小匹配

re库的match对象

match = re.search(r'[1-9]\d{5}','BIT 100081')
if match:
    print (match.group(0))
type(match) # <class '_sre.SRE_Match'>

Match对象的属性

  • .string 待匹配的额文本
  • .re 匹配时使用的pattern对象(正则表达式)
  • .pos 正则表达式搜索文本的开始位置
  • .endpos 正则表达式搜索文本的结束位置

 

Match对象的方法

  • .group(0) 获取匹配后的字符串
  • .start() 匹配字符串在原始字符串的开始位置
  • .end() 匹配字符串在原始字符串的结束位置
  • .span() 返回(.start(),.end())

 

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

Re库的贪婪匹配与最小匹配

 

match= re.search(r'PY.*N','PYANBNCNDN')
match.group(0) # 'PYANBNCNDN'

贪婪匹配

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

输出最短子串

match = re.search(r'PY.*?N','PYANBNCNDN')
match.group(0) # 'PYAN'

最小匹配操作符

  • *? 前一个字符0次或无限次扩展,最小匹配
  • +? 前一个字符1次或无限次扩展,最小匹配
  • ?? 前一个字符1次或0次扩展,最小匹配
  • {m,n}? 扩展前一个字符m至n次(含n),最小匹配

猜你喜欢

转载自blog.csdn.net/paleyellow/article/details/81506265