导图社区 Python正则表达式
Python 的正则表达式(Regular Expression,简称 regex 或 regexp)是一种强大的文本处理工具,用于匹配字符串中符合特定模式的子串。
社区模板帮助中心,点此进入>>
互联网9大思维
组织架构-单商户商城webAPP 思维导图。
域控上线
python思维导图
css
CSS
计算机操作系统思维导图
计算机组成原理
IMX6UL(A7)
考试学情分析系统
Python正则表达式
1.基本语法
普通字符
匹配自身
如字母、数字、汉字等
例如:'abc' 匹配字符串中的'abc'
特殊字符(元字符)
具有特殊含义的字符
如点号(.)、星号(*)、加号(+)等
例如:'.*' 匹配任意数量的任意字符
字符类
匹配指定范围内的字符
如abc匹配'a'、'b'或'c'
如09匹配任意一个数字
锚点
匹配指定位置
如^匹配字符串的开始位置
如$匹配字符串的结束位置
量词
指定字符或字符类出现的次数
如*表示0次或多次
如+表示1次或多次
如?表示0次或1次
如{n}表示恰好n次
如{n,}表示至少n次
如{n,m}表示至少n次,至多m次
分组与捕获
用括号()表示
创建子表达式
捕获匹配的文本供后续使用
或运算符
匹配多个表达式中的任意一个
如ab匹配'a'或'b'
转义字符
取消特殊字符的特殊含义
如\*表示字面量的星号(*)
2.re模块函数
compile()
编译正则表达式模式
生成一个可重复使用的正则表达式对象
search()
在字符串中搜索匹配正则表达式的第一个位置
返回一个匹配对象
match()
从字符串的开始位置匹配正则表达式
如果匹配成功,返回一个匹配对象
fullmatch()
完整匹配整个字符串
findall()
查找字符串中所有匹配正则表达式的部分
返回一个列表
finditer()
返回一个迭代器
sub()
替换字符串中匹配正则表达式的部分
返回替换后的字符串
split()
根据匹配正则表达式的部分分割字符串
3.匹配对象
group()
返回匹配正则表达式的部分
可以指定组号获取特定的匹配部分
groups()
返回一个包含所有匹配子组的元组
包括整个匹配的部分
start()
返回匹配的起始位置
end()
返回匹配的结束位置
span()
返回一个元组,包含匹配的起始位置和结束位置
4.正则表达式高级特性
后视断言
零宽断言的一种
匹配某个位置,但不包括在匹配结果中
如(?<=abc)def只匹配'def',如果它前面是'abc'
前视断言
如(?=abc)def只匹配'def',如果它后面是'abc'
负向后视断言
如(?<!abc)def只匹配'def',如果它前面不是'abc'
负向前视断言
如(?!abc)def只匹配'def',如果它后面不是'abc'
命名捕获组
为捕获组命名
使用(?P<name>pattern)的形式
可以通过名字引用匹配的内容
忽略大小写
在匹配时不区分大小写
使用re.IGNORECASE或re.I标志
多行模式
改变^和$的行为
使用re.MULTILINE或re.M标志
^匹配每一行的开始,$匹配每一行的结束
5.正则表达式常见用途
文本处理
搜索、替换文本中的特定模式
数据验证
验证输入数据的格式是否正确
网络爬虫
提取网页中的特定信息
日志分析
解析日志文件中的特定模式
编程语言中的字符串处理
在代码中查找和操作字符串数据
6.定义与用途
正则表达式概念
用于匹配字符串中字符组合的模式
由普通字符(例如字母和数字)以及特殊字符(称为"元字符")组成
Python中的正则表达式模块
re模块
Python标准库中的正则表达式处理模块
提供了编译正则表达式、搜索、替换等函数
7.正则表达式编写技巧
理解需求
明确要匹配的文本模式
从简单到复杂
先编写简单的正则表达式,逐步增加复杂度
使用分组和捕获
通过分组和命名捕获来提取有用信息
测试和调试
使用在线工具或re模块的函数进行测试
避免贪婪匹配
使用量词时注意贪婪和非贪婪的区别
考虑性能
对于大量数据,注意正则表达式的性能影响
学习正则表达式的扩展
了解更多高级特性,如正向和负向断言
阅读文档和示例
阅读re模块的官方文档和相关教程
实践
多练习,提高编写和理解正则表达式的能力