随笔 - 105  文章 - 0  评论 - 0  阅读 - 40744

正则表达式re模块

re模块用法:

1、res = re.match('^Liang', 'Liangshuhui') #  如果匹配则有返回,否则为空。注意:match是从头开始匹配,在此处^没用

2、re.search比较常用

3、re.findall

4、res.group() # 查找匹配到的模式

5、re.split(pattern, string, maxsplit=0, flags=0)  #分割

6、re.sub(pattern, repl, string, count=0, flags=0) #替换

 

常用正则表达式符号:

1、".":匹配除\n外的所有符号

2、"^":匹配字符开关

3、$:匹配字符结尾

4、+:匹配前一个字符1次或多次

5、?:匹配前一个字符0次或1次

6、{m}:匹配前一个字符m次

7、{n,m}:匹配前一个字符n到m次

8、|:匹配其左边或右边的字符

9、(...):分组匹配

10、\A:和^一样

11、\Z:和$一样

12、\d:匹配数字

13、\D:匹配非数字

14、\w:匹配[a-zA-Z0-9]

15、\W:与\w相反,即特殊字符

16、'\s':匹配空白字符,\t \n \r 

17、(?p<name>...):分组匹配

如:

A、re.search('(?P<province>[0-9]{2})(?P<city>[0-9]{2})(?P<town>[0-9]{2})', '440181198112248118').groupdict()
{'province': '44', 'city': '01', 'town': '81'}

B、res = re.search('(?P<province>[0-9]{2})(?P<city>[0-9]{2})(?P<town>[0-9]{2})', '440181198112248118').group('city')
res

'01'

C、

re.search('(?P<province>[0-9]{2})(?P<city>[0-9]{2})(?P<town>[0-9]{2})', '440181198112248118').group()
'440181'

18、匹配反斜杠:建议r'\\'

 

匹配模式:

re.I:忽略大小写

re.DOTALL或re.S:单行模式改变了点号(.)的匹配行为

re.M:多行模式,在多行模式下,^除了匹配整个字符串的起始位置,还匹配换行符后面的位置;$除了匹配整个字符串的结束位置,还匹配换行符前面的位置.

 

非贫婪模式切换:在"*","?","+","{m,n}"后面加上?,使贪婪变成非贪婪

 

前瞻后顾:未完待上

posted on   Treelight  阅读(161)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示