如果想把區號從匹配的電話號碼中分離,可以添加括號在正則表達式中創建分組,再使用group()方法,從一個分組中獲取匹配的文本
正則表達式字符串中,第一個括號是第一組,第二個括號是第二組。向group()方法傳入參數1或2,可以獲得匹配文本中的不同部分,傳入0或者不傳參數,將返回整個匹配的文本
>>> import re
>>> m=re.search(r'(\d{3})-(\d{3}-\d{4})','My phone number is 012-239-4597')
>>> print(m.group(1))
012
>>> print(m.group())
012-239-4597
>>>
使用groups()方法,可以返回所有的分組
>>> import re
>>> m=re.search(r'(\d{3})-(\d{3}-\d{4})','My phone number is 012-239-4597')
>>> print(type(m.groups()))
<type 'tuple'>
>>> print(m.groups())
('012', '239-4597')
>>>
groups()返回多個值的元組,可以使用多重賦值的技巧,進行賦值
>>> import re
>>> m=re.search(r'(\d{3})-(\d{3}-\d{4})','My phone number is 012-239-4597')
>>> area_code,main_code = m.groups()
>>> print(area_code)
012
>>> print(main_code)
239-4597
>>>