Python Re Group()

import re

line='Cats are smarter then dogs'
searchObj=re.search(r'(.*) are (.*?) .*',line,re.M|re.I)
#searchObj=re.match('w','WWW.baidu.com',flags=re.I)
if searchObj:
    print(searchObj)
    print('group:',searchObj.group())
    print("group1:",searchObj.group(1))
    print("group2:",searchObj.group(2))
    print("groups:",searchObj.groups())
else:
    print('nothing')

---------------------------------------------------------------------------
<_sre.SRE_Match object; span=(0, 26), match='Cats are smarter then dogs'>
group: Cats are smarter then dogs
group1: Cats  #对应第1个括号
group2: smarter   #对应第2个括号
groups: ('Cats', 'smarter')

正则表达式中,group()用来提出分组截获的字符串,()用来分组

1

2

3

4

5

6

import re

= "123abc456"

print re.search("([0-9]*)([a-z]*)([0-9]*)",a).group(0)   #123abc456,返回整体

print re.search("([0-9]*)([a-z]*)([0-9]*)",a).group(1)   #123

print re.search("([0-9]*)([a-z]*)([0-9]*)",a).group(2)   #abc

print re.search("([0-9]*)([a-z]*)([0-9]*)",a).group(3)   #456

 

究其因

1. 正则表达式中的三组括号把匹配结果分成三组

  •  group() 同group(0)就是匹配正则表达式整体结果
  •  group(1) 列出第一个括号匹配部分,group(2) 列出第二个括号匹配部分,group(3) 列出第三个括号匹配部分。

2. 没有匹配成功的,re.search()返回None

3. 当然郑则表达式中没有括号,group(1)肯定不对了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值