python正则表达式分组

1.基本使用

>>> import re
>>> p1=re.compile('(a)b(c)')                       
  #匿名分组(a),(c)
>>> m1=p1.match('abcdefg')
>>> dir(m1)
['__class__', '__copy__', '__deepcopy__', '__delattr__', '__doc__', '__format__', '__getattribute__', '__hash__', '__init__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'end', 'endpos', 'expand', 'group', 'groupdict', 'groups', 'lastgroup', 'lastindex', 'pos', 're', 'regs', 'span', 'start', 'string']
>>> m1.group()
'abc'
>>> m1.groups()
('a', 'c')
>>> m1.groupdict()
{}

>>> p2=re.compile('(?Pa)b(c)')     #命名分组(?Pa)
>>> m2=p2.match('abcdefg')
>>> m2.group()
'abc'
>>> m2.groups()
('a', 'c')
>>> m2.groupdict()
{'name_a': 'a'}

2. 抓取网页链接练习:

 不分组:search_str=re.compile(r'href=".+?"')

结果:

href="//s1.bdstatic.com"
href="//t1.baidu.com"
href="//t2.baidu.com"
href="//t3.baidu.com"

分组:search_str=re.compile(r'href="(.+?)"')

//s1.bdstatic.com"
//t1.baidu.com"
//t2.baidu.com"
//t3.baidu.com"



 

 

你可能感兴趣的:(Python,正则表达式)