42 python中正则中的分组 正则中匹配字符串的起始和结
发表于:2025-02-03 作者:千家信息网编辑
千家信息网最后更新 2025年02月03日,第七课 正则中的分组# 分组# 正则表达式中用一对圆括号括起来的部分被称为一个分组# '(\d\d\d)-(\d\d)'import re'''1. 只有圆括号括起来的部分才算一组,如果正则表达式中既
千家信息网最后更新 2025年02月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安全错误
数据库的锁怎样保障安全
国三数据库哪个容易通过
我的世界决战斗罗服务器图片
惠普服务器电源1200瓦
网络安全校外培训
无法连接服务器 连接中止
张家口行为管理服务器购买
数据库查询数据超时已过期
上海专业软件开发管理
奶块多久更新一个服务器
创新管理优化服务器
局域网服务器ip如何设置
服务器访问权限有哪些
dell微型服务器
河北项目软件开发服务费
数据库更换列位置
泰顺游戏软件开发
安永网络安全咨询上海年收入
注册软件开发类公司要求
软件开发涉密信息系统集成咨询
大学生网络安全课程设计
郑州中软软件开发有限公司
睿智科技下一代互联网
大学网络安全课件
2020年5月网络安全案例
软件开发客户应该提供生命
鞍山新零售软件开发哪家好
网络安全大数据的几个关键能力
脑控数据库
安徽网络安全审计硬件
数据库中mid函数表达式