千家信息网

python正则表达式的技巧有哪些

发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,本篇内容介绍了"python正则表达式的技巧有哪些"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!最小
千家信息网最后更新 2025年12月03日python正则表达式的技巧有哪些

本篇内容介绍了"python正则表达式的技巧有哪些"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

最小匹配

格式

量词?

注:量词有{n,m}、?、+、*

用处

在字符串中查找符合正则表达式规则的最短子字符串。

案例

现有字符串num = "10-3*(20-10+(-10/5)27/3/3-(-100)/(10-35))",要提取括号中的内容。

import renum = '10-3*(20-10+(-10/5)*27/3/3-(-100)/(10-3*5))+(-5*-6)'num2 = re.findall('\(.+?\)', num)num3 = re.findall('\(.+\)', num)print(num2)print(num3)out:['(20-10+(-10/5)', '(-100)', '(10-3*5)']['(20-10+(-10/5)*27/3/3-(-100)/(10-3*5))']

上述代码中num2使用了最小匹配,而num3使用了默认的最大匹配。

请注意num2的正则表达式:

.表示匹配除了换行符之外的所有字符

+表示一个或多个

?表示最小匹配,匹配后面第一个)即返回结果。若没有这个?会匹配到最后一个)才返回结果。

分组

格式

(\w)

注:在正则表达式中一对括号包围的内容表示分组,正则表达式中可以有多个分组

用处

匹配字符串,只提取分组中的内容,非分组的内容舍弃不提取。

案例

str1 = '''pythonjavajavascript'''result1 = re.findall('<\w+>(\w+)<\w+>',str1)print(result1)result2 = re.findall('<(\w+)>\w+<\w+>',str1)print(result2)out:['python', 'java', 'javascript']['a', 'b', 'c']

从result1和result2提取内容的不同可以看到分组的妙用,分组能指定提取符合正则表达式某一段的内容。

分组隐藏

格式

(?:正则表达式)

注:在括号内以?:开头的分组,匹配到的内容会被隐藏。

另:分组隐藏和分组命名不能同时使用。

用处

当有用数据和无用数据混在一起时,只能先全取出来,然后对无用数据做分组隐藏,把有用的数据对应的正则表达式用()包起来,这样即可提取出有用数据。

案例

result1 = re.findall('1(\d)(\d)','167189')print(result1)result2 = re.findall('1(?:\d)(\d)','167189')print(result2)out:[('6', '7'), ('8', '9')]['7', '9']

分组命名

格式

(?P<名字>正则表达式)

注:?P<名称>,英文书名号内是分组的名称。

用处

分组命名在有很多段分组时对不同的分组命名,便于使用,防止混淆。

案例

str1 = 'study python every day'ret = re.search('<(?P\w+)>(?P.*?)',str1)print(ret)print(ret.group('tag'))print(ret.group('name'))out:tagstudy python every day

上述案例是一个简单的示范,只有2个分组。但实际爬虫的时候经常会遇到多达10个以上的分组。在分组数量多的时候很容易混淆数据,若使用分组命名会非常方便,根据名字读取对应的数据,提高了代码可读性。

"python正则表达式的技巧有哪些"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

分组 正则 表达式 内容 数据 案例 字符 字符串 格式 用处 最小 括号 有用 技巧 不同 代码 多个 实际 时候 更多 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 最新网络安全概念龙头 pcl2多人游戏服务器地址 网络安全各自责任 政府防范化解网络安全风险ppt 河北特种网络技术服务市场价 数据库分为三个层次 淄博网络安全产品认证 hana 数据库为什么好 多个平台搭建服务器 电信公司网络安全考试 虹口区综合网络技术职能 北辰区电子网络技术售后服务 宝鸡市民巡展网络安全 怎样上传mysql数据库 管家婆服务器版本不对 网络安全知识都有哪些 上海硬通网络技术有限公司 高青客户管理软件开发 跨境网络安全概念股龙头 苏州有哪些大专学软件开发的 网络科技和互联网工程哪个好 幼儿园网络安全知识培训ppt 无人驾驶网络安全怎么样 服务器怎么进打印管理 ftp服务器传输速度提升 什么是ice服务器事件 江苏数据网络技术创新服务 千千静听歌词服务器2022 比特币数据库安全吗 敏捷软件开发适用于哪种类型软件
0