python学习小组分组程序_[python进阶课程]014-分组

奥奥很高心能和大家一起进步,一起学习,今天我们已经同步了官网和公众号信息,目前小程序已经发布,大家可通过这个链接进行访问:

接下来我们学习新知识,分组的使用!

一,分组

可以通过用圆括号围绕正则表达式的一部分来创建组。

这意味着一个组可以作为元字符的参数,如 * 和?。

例如:

import re

pattern = r"egg(spam)*"

if re.match(pattern, "egg"):

print("Match 1")

if re.match(pattern, "eggspamspamspamegg"):

print("Match 2")

if re.match(pattern, "spam"):

print("Match 3")

尝试一下

(spam)代表上面示例模式中的一个组。

结果:

Match 1

Match 2

02.分组--嵌套

可以使用组功能访问匹配组中的内容。

可以调用 group(0) 或者 group() 返回整个匹配。

调用 group(n) ,n 要大于 0,返回匹配的第 n 个组。

groups() 返回所有匹配的分组。

例如:

import re

pattern = r"a(bc)(de)(f(g)h)i"

match = re.match(pattern, "abcdefghijklmnop")

if match:

print(match.group())

print(match.group(0))

print(match.group(1))

print(match.group(2))

print(match.groups())

结果:

abcdefghi

abcdefghi

bc

de

('bc', 'de', 'fgh', 'g')

从上面的例子可以看出,组可以嵌套。

03.分组--有几种特殊的群组。

两个有用的命名组和非捕获组。

命名组格式为 (?P...),其中 name 是组的名称,...是内容。他们的表现与正常组完全相同,除了可以通过 group(name) 代替编号访问。

非捕获组格式为 (?:...)。它们不能通过组方法访问,所以可以将它们添加到现有的正则表达式中而不会破坏编号。

例如:

import re

pattern = r"(?Pabc)(?:def)(ghi)"

match = re.match(pattern, "abcdefghi")

if match:

print(match.group("first"))

print(match.groups())

结果:

abc

('abc', 'ghi')

04.元字符--另一个重要的元字符是 | 。

意思是与,比如 red|blue 匹配 "red"或者"blue"。

例如:

import re

pattern = r"gr(a|e)y"

match = re.match(pattern, "gray")

if match:

print ("Match 1")

match = re.match(pattern, "grey")

if match:

print ("Match 2")

match = re.match(pattern, "griy")

if match:

print ("Match 3")

结果:

Match 1

Match 2

三,作业死了都要做

01.'([^aeiou][aeiou][^aeiou])+' 匹配什么?

A. 无匹配

B. 重复的“aeiou”三的倍数

C. 一个或多个重复的非元音,元音和非元音

02. 1(23)(4(56)78)9(0) 使用 group(3) 返回什么?

A. 45678

B. 23

C. 0

D. 56

03.(a)(b(?:c)(d)(?:e)) 中 len(match.groups()) 结果为?

A. 0

B. 2

C. 3

D. 4

04.哪个正则表达式与其他的不同?

A. [1-6]

B. [12345]

C. (1|2|3|4|5)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值