Python Re Group()
阿新 • • 發佈:2018-12-21
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 |
2 ) #abc
|
究其因
1. 正則表示式中的三組括號把匹配結果分成三組
- group() 同group(0)就是匹配正則表示式整體結果
- group(1) 列出第一個括號匹配部分,group(2) 列出第二個括號匹配部分,group(3) 列出第三個括號匹配部分。
2. 沒有匹配成功的,re.search()返回None
3. 當然鄭則表示式中沒有括號,group(1)肯定不對了