42 python中正则中的分组 正则中匹配字符串的起始和结
发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,第七课 正则中的分组# 分组# 正则表达式中用一对圆括号括起来的部分被称为一个分组# '(\d\d\d)-(\d\d)'import re'''1. 只有圆括号括起来的部分才算一组,如果正则表达式中既
千家信息网最后更新 2025年12月03日42 python中正则中的分组 正则中匹配字符串的起始和结
第七课 正则中的分组# 分组# 正则表达式中用一对圆括号括起来的部分被称为一个分组# '(\d\d\d)-(\d\d)'import re'''1. 只有圆括号括起来的部分才算一组,如果正则表达式中既有被圆括号括起来的部分,也有未被圆括号括起来的部分,那么只将圆括号括起来的部分算一组2. group方法,如果不指定参数,会返回匹配的整个字符串,如果加参数,会返回指定分组的字符串,组索引从1开始3. groups方法,以元组形式返回匹配的所有分组4. 分组的索引是从1开始的 '''# 分3组 3个数字-4个数字-2个小写字母m = re.match('(\d{3})-\d{4}-[a-z]{2}','123-4567-xy')print(m) # print(m.groups()) # ('123',)print(m.group()) # 123-4567-xyprint(m.group(1)) # 123print('-------------')m = re.match('(\d{3})-(\d{4})-[a-z]{2}','123-4567-xy')print(m) # print(m.groups()) # ('123', '4567') 这个是返回一个元组 只要是分组里面的就放在元组里print(m.group()) # 123-4567-xyprint(m.group(1)) # 123print(m.group(2)) # 456print('----------')m = re.match('(\d{3})-(\d{4})-([a-z]{2})','123-4567-xy')print(m) # print(m.groups()) # ('123', '4567', 'xy')print(m.group()) # 123-4567-xyprint(m.group(1)) # 123print(m.group(2)) # 456print(m.group(3)) # xyprint('-----------')m = re.match('(\d{3}-\d{4})-([a-z]{2})','123-4567-xy')print(m) # print(m.groups()) # ('123-4567', 'xy')print(m.group()) # 123-4567-xyprint(m.group(1)) # 123-4567print(m.group(2)) # xy 第八课 正则中匹配字符串的起始和结尾以及单词边界# 匹配字符串的起始和结尾以及单词边界'''"^":匹配字符串的开始"$":匹配字符串的结束"\b":匹配单词边界单词边界:是指空格或标点符号" hello?" 这个左右2侧都有边界" world0" 这个表示左侧有边界,右侧没有边界'''import re# "The"必须在字符串的开始才会搜索到m = re.search('The', 'abc The.')print(m) # m = re.search('^The', 'The bus.')print(m) # # The必须在字符串的结尾才会搜索到m = re.search('The$','The end.')print(m) # Nonem = re.search('The$','end.The')print(m) # print("---------------")# 要求'this'左侧必须有边界才能搜索到m = re.search(r'\bthis',"What's this?") # 不使用r里面的\b就会给你转义了print(m) # m = re.search(r'\bthis',"this is a bus.")print(m) # m = re.search(r'\bthis'," is a bus.")print(m) # m = re.search(r'\bthis',"1234this is a bus.")print(m) # Nonem = re.search(r'\bthis\b',"What's this123")print(m) # None 第九课 正则中使用findall和finditer函数查找所有匹配的结果# 使用findall和finditer函数查找所有匹配正则表达式的字符串'''findall:通过列表返回所有满足条件的字符串,DOM 这是所有结果一起返回finditer:将搜索结果通过一个迭代器返回,SAX 这个不是所有的返回'''import res = '12-a-abc54-a-xyz---78-A-ytr'result = re.findall(r'\d\d-[a]-[a-z]{3}',s)print(result) # ['12-a-abc', '54-a-xyz']result = re.findall(r'\d\d-[aA]-[a-z]{3}',s) # 这一步里面的 [aA] 也是忽略大小写print(result) # ['12-a-abc', '54-a-xyz', '78-A-ytr'] result = re.findall(r'(\d\d-[aA])-([a-z]{3})',s) # 分组返回 拆成一个组print(result) # [('12-a', 'abc'), ('54-a', 'xyz'), ('78-A', 'ytr')]s1 = '12-a-abc54-a-xYz---78-A-ytr'result = re.findall(r'\d\d-a-[a-z]{3}',s1,re.I) # 可以加第三个参数 第三个参数的位置 可以忽略大小写 re.I 这个就是忽略大小写print(result) # ['12-a-abc', '54-a-xYz', '78-A-ytr']it = re.finditer(r'(\d\d)-a-([a-z]{3})',s,re.I)for result in it: print(result.group(),end=' <') groups = result.groups() for i in groups: print(i, end = ' ') print('>')'''12-a-abc <12 abc >54-a-xyz <54 xyz >78-A-ytr <78 ytr >'''
字符
字符串
分组
边界
正则
圆括号
部分
单词
参数
搜索
大小
结果
表达式
起始
三个
函数
数字
方法
索引
中用
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
软件开发企业商业计划书
数据库视图中的列名能修改吗
厦门软件开发停车收费
事实和数值型数据库有哪些
通信网络技术钉钉直播
科密a1 数据库配置
cmd传文件到服务器
数据库与技术2012答案
前沿的网络技术
计算网络技术专升本考哪些科目
如何通过ip查询服务器信息
张家港永泰网络技术有限公司
隆麟网络技术
获取服务器版本信息失败怎么办
网络安全法的具体内容
sql软件开发版下载
网络安全内外网分离
三级考试网络技术 信息安全
个人软件开发资质
公安派出所网络安全工作方案
数据库入侵知识
数据库字段自动变乱码
学软件开发怎么起步
网络安全自查检查报告
中小学网络安全培训感言
区块链对网络安全工程师
公司的服务器管理器部门架构
都市之互联网科技帝
数据库管理技术大全
财政部 网络安全