python 21:match对象的两个方法group()和groups()

一、group()方法

返回查到到的匹配文本。

>>>import re

>>>phoneNumRegex = re.compile(r'\d\d\d-\d\d\d-\d\d\d\d')

>>>mo = phoneNumRegex.search('My number is 415-555-4242.')

>>>print('Phone number found:' + mo.group())

Phone number found:415-555-4242

二、返回指定分组的匹配文本

假定想要将区号从电话号码中分离,添加括号将在正则表达式中创建“分组”:(\d\d\d) -(\d\d\d-\d\d\d\d)。然后可以使用group()匹配对象方法,从一个分组中获取匹配的文本。

正则表达式字符串中的第一对括号是第1组。第二对括号是第2组。

向group()匹配对象方法传入整数1或2,就可以取得匹配文本的不同部分。向group()方法传入0或不传入参数,将返回整个匹配的文本。

group()方法在分组的情况下,可以通过指定参数来返回指定分组的匹配文本。

>>>phoneNumRegex = re.compile(r'(\d\d\d)-(\d\d\d-\d\d\d\d)')

>>> mo = phoneNumRegex.search('My number is 415-555-4242.')

>>>mo.group(1)

'415'

>>>mo.group(2)

'555-4242'

>>>mo.group(0)

'415-555-4242'

>>>mo.group()

'415-555-4242'

三、一次返回所有分组的匹配文本

使用groups()方法,返回一个元组。有多少分组就有多少元素。

>>>mo.groups()

('415' ,'555-4242')

>>>areaCode, mainNumber =mo.groups()

>>> print(areaCode)

415

>>>print(mainNumber)

555-4242

你可能感兴趣的:(python 21:match对象的两个方法group()和groups())