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 |
|
究其因
1. 正则表达式中的三组括号把匹配结果分成三组
- group() 同group(0)就是匹配正则表达式整体结果
- group(1) 列出第一个括号匹配部分,group(2) 列出第二个括号匹配部分,group(3) 列出第三个括号匹配部分。
2. 没有匹配成功的,re.search()返回None
3. 当然郑则表达式中没有括号,group(1)肯定不对了