Warning: ftp_fget() expects parameter 1 to be resource, null given in /www/wwwroot/new.weijing.co/wp-admin/includes/class-wp-filesystem-ftpext.php on line 146

在 Python 的正则表达式中使用分组

通过在正则表达式中使用括号可以创建 “ 分组 ” ,比如这个正则表达式 (\\d\\d\\d)-(\\d\\d\\d-\\d\\d\\d\\d) 利用括号,创建了两个分组。

1 group() 方法

可以使用 group() 方法,从一个分组中获取所匹配的文本。
传入整数 1 或 2, 就可以取得匹配文本的不同部分。 向 group() 方法传入 0 或不传入参数,将返回整个匹配的文本。

phone_num_regex=re.compile(r\'(\\d\\d\\d\\d)-(\\d\\d\\d\\d\\d\\d\\d\\d)\')
mo=phone_num_regex.search(\'我的联系号码为: 0591-83822032.\')
print(mo.group())
print(mo.group(0))
print(mo.group(1))
print(mo.group(2))

运行结果:

0591-83822032
0591-83822032
0591
83822032

2 groups() 方法

可以使用 groups() 方法,一次性获取所有的分组。

print(mo.groups())
area_code, num = mo.groups()
print(\'area_code=\' + area_code)
print(\'num=\' + num)

运行结果:

(\’0591\’, \’83822032\’)
area_code=0591
num=83822032

groups() 会返回包含多个值的元组,所以我们可以使用多重复制技巧,把每个值赋给一个变量,就像前面的示例所展示的那样:area_code, num = mo.groups()

3 匹配括号

如果需要在文本中匹配括号, 那么需要使用倒斜杠对 ( 和 ) 进行字符转义。

phone_num_regex = re.compile(r\'(\\(\\d\\d\\d\\d\\))-\\d\\d\\d\\d\\d\\d\\d\\d\')
mo = phone_num_regex.search(\'我的联系号码为: (0591)-83822032.\')
print(mo.group(1))

运行结果:

(0591)

发表评论

您的电子邮箱地址不会被公开。

Shopping Cart