匹配开头和结尾
==目标:==了解文本数据开头和结尾的匹配。
匹配开头和结尾语法:
| 代码 | 功能 |
|---|---|
| ^ | 匹配字符串开头。 |
| $ | 匹配字符串结尾。 |
例如,一起来完成:
(1)使用^来匹配非数字的单个字符;
(2)使用$来匹配www.baidu.com的结尾处。
import re
# result = re.match("","").group()
# print(f"结果:{result}")
# 匹配开头: 非数字
# result = re.match("[0-9]","1").group()
# result = re.match("[^0-9]","g").group()
# result = re.match("[^0-9]","heima").group()
# result = re.match("[^0-9]+","heima").group()
# print(f"结果:{result}")
# 匹配结尾
# result = re.match(".+","www.baidu.com").group()
# result = re.match("www.baidu.com","www.baidu.com").group()
# result = re.match("www.baidu.com$","www.baidu.com.cn.gov.edu").group()
result = re.match("www.baidu.com$","www.baidu.com").group()
print(f"结果:{result}")
==总结:==
(1)当要限定结尾处内容时,可以使用()符号。A、b;==B、$==。
匹配分组
==目标:==掌握分组数据的匹配使用。
要获取分组数据信息,语法:
| 代码 | 功能 |
|---|---|
| X|Y | 匹配X或Y的任意一个表达式。 |
| (X) | 将括号中字符X作为一个分组用于获取,且从1开始统计分组。 |
例如,一起来完成:
(1)使用X|Y来匹配出0-100之间的所有数字字符结果;
(2)使用(X)来匹配出含有163、126、qq这几个内容且用户名位数为4-12位的邮箱,如itcast@163.com等。
import re
# result = re.match("","").group()
# print(f"结果:{result}")
# 0-100
# result = re.match("[1-9]?[0-9]|100","8").group()
# result = re.match("[1-9]?[0-9]|100","87").group()
# result = re.match("[1-9]?[0-9]|100","99").group()
# result = re.match("[1-9]?[0-9]|100","100").group() # 10
# result = re.match("100|[1-9]?[0-9]","100").group()
# result = re.match("100|[1-9]?[0-9]","10").group()
# print(f"结果:{result}")
# 邮箱号
# result = re.match("(\w{4,12})@(126|163|qq).(com|cn)","hellopy@qq.com").group()
# result = re.match("\w{4,12}@(126|163|qq).com","hellopy@163.com").group(1)
# result = re.match("(\w{4,12})@(126|163|qq).com","hellopy@163.com").group(1)
# result = re.match("(\w{4,12})@(126|163|qq).com","hellopy@163.com").group(2)
result = re.match("\w{4,12}@(126|163|qq).com","hellopy@qq.com").group()
# print(f"结果:{result}") # 思考: 邮箱来源: 126/163/qq 获取用户名
print(f"结果:{result[:result.find('@')]}")
==总结:==
(1)如果在涉及到要获取分组数据时,一定记得要使用()来写正则;
(2)注意:要获取分组数据时,在正则中的()从1开始计算分组,比如获取第1组,则group()的括号中应该填写()。==A、1==;B、2。
597

被折叠的 条评论
为什么被折叠?



