42 python中正则中的分组 正则中匹配字符串的起始和结
发表于:2024-10-19 作者:千家信息网编辑
千家信息网最后更新 2024年10月19日,第七课 正则中的分组# 分组# 正则表达式中用一对圆括号括起来的部分被称为一个分组# '(\d\d\d)-(\d\d)'import re'''1. 只有圆括号括起来的部分才算一组,如果正则表达式中既
千家信息网最后更新 2024年10月19日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安全错误
数据库的锁怎样保障安全
远程服务器管理工具哪个好用
云南超频服务器销售
查看mysql数据库版本语句
极限竞速服务器
无代码访问数据库
高中网络技术中填充怎么做
不同数据库检索结果的差异
手游后台服务器管理
ciw 网络安全
为什么装u8检测不到数据库
网络安全工程培训课程
sql数据库jar包
直播软件开发市场调研报告
科学开展网络安全
上海餐饮扫码点餐软件开发
上海新一代软件开发价格
华为青岛软件开发 红岛
软件技术软件开发工程
鄞州专业软件开发工程
数据库储存文章格式
网络安全 注入 青春饭
网络安全人才担当民族复兴
北京软件开发公司刘畅
新媒体网络安全规范
有家互联网信息科技
下列数据库支持截词检索的有
汽车站内部网络安全管理制度
影视设备租赁app软件开发
有主码的数据库如何删除
mysql数据库名字敏感性