python(正则表达式(学习))

编程入门 行业动态 更新时间:2024-10-26 04:20:28

python(<a href=https://www.elefans.com/category/jswz/34/1770561.html style=正则表达式(学习))"/>

python(正则表达式(学习))

python(正则表达式(学习))

前面的博客是复习,这篇文章属于学习,因为前面的知识点我学过,只是温故而知新,而正则表达式,我是没有学习过,因此是学习,这里当博客为一个笔记本,会的同学跳过,不会的,我们一起学习。let‘s go!

定义:正则表达式也称为规则表达式,是用来查找或撒选满足某种规则(模式)的数据,所以说,使用正则表达式是让计算机代替人力去批量处理(查找或撒选)数据

在python使用re模块,进行正则表达式使用
import re
注意自己在网上搜索一下正则表达式相关的符号与含义
符号 含义
\n 匹配一个换行符
\t 匹配一个制表符
^ 匹配字符串开始位置
$ 匹配字符串结束位置
I 匹配时忽略大小
M 多行匹配
U 根据Unicode字符及解析字符

其余自己查找,用的时候查即可,不用一个个记住,但是可以先看看有哪些符号和含义,后面使用起来比较方便(关键是知道如何查找)

1.原子
原子是正则表达式中的最基本的单位
每个表达式都会包括至少一个原子,常见的原子有以下几种类型
1)普通字符作为原子
2)非打印字符作为原子
3)通用字符作为原子
4)原子表
注意正则表达式只是表达式,没有任何功能,所以需要通过相关的函数进行实现。

 1)普通字符作为原子在此可以使用search()函数进行查找和匹配。使用格式如下import restring="tiaoyunjiaoyu"pat="yun"rst=re.rearch(pat,string)print(rst)

如下所示:
import re
string=“zhugekongminglu”
pat=“kongming”
rst=re.search(pat,string)
print(rst)
运行结果如下:
<_sre.SRE_Match object; span=(5, 13), match=‘kongming’>
汉字也是可以以同样的方式进行实现
import re
string=“诸葛孔明庐”
pat=“孔明”
rst=re.search(pat,string)
print(rst)
<_sre.SRE_Match object; span=(2, 4), match=‘孔明’>

 2)非打印字符作为原子常见的非打印字符主要有两种1.\n 2.\timport re

string=“taioyunji8 7362387aoyubaidu”
pat="\w\d\s\d\d"
rst=re.search(pat,string)
print(rst)
<_sre.SRE_Match object; span=(8, 13), match=‘i8 73’>

2.元字符
. 除换行符以外的任意字符
中间一个字符
import re
string=“what’s the time?”
pat1=“t.e”
rst1=re.search(pat1,string)
print(“rst1:”+str(rst1))
rst1:<_sre.SRE_Match object; span=(7, 10), match=‘the’>

#加上group()可以将需要的结果直接输出
import re
string=“what’s the time?”
pat1=“t.e”
rst1=re.search(pat1,string)
print(rst1.group())
执行结果:the

中间两个字符
import re
string=“what’s the time?”
pat1=“t…e” # 中间两个字符…
rst1=re.search(pat1,string)
print(rst1.group())
执行结果:time

3.贪婪模式与懒惰模式
使用贪婪模式会尽可能多的进行匹配,但是这样一来结果是最不精确地;而使用懒惰模式,尽管匹配的数量比较少,但是这样一来,匹配的精确度就相当高,因此根据实际情况,来选择到底使用哪种模式进行匹配。
1)贪婪模式
import re
string=“what’s the time?”
pat1=“h.*e”
rst1=re.search(pat1,string)
print(rst1.group())

2)懒惰模式
import re
string=“what’s the time?”
pat1=“h.*?e”
rst1=re.search(pat1,string)
print(rst1.group())

4.模式修正符
###修正模式
1)大小写修正模式
import re
string=“Why are you want to learn Python?”
pat1=“p.*?n”
rst1=re.search(pat1,string)
rst2=re.search(pat1,string,re.I) #不区分大小写进行修正模式匹配
print(“rst1:”+str(rst1))
print(“rst2:”+str(rst2.group()))
执行结果如下:
rst1:None
rst2:Python
通过修正模式以后,再次进行匹配的时候就不会进行大小写之分,因此能够完美查找出所需要的信息。

2)多行匹配修正模式
###修正模式
import re
string=’’‘Why are you want
to learn Python?’’’
pat1=“a.*?l”
rst1=re.search(pat1,string)
rst2=re.search(pat1,string,re.S) #多行修正模式匹配
print(“rst1:”+str(rst1))
print(“rst2:”+str(rst2.group()))

5.正则表达式函数
正则表达式是静态的,是一种规则,其本身是不具备功能的,所以匹配数据的时候,需要用正则表达式函数实现对应的匹配功能。

更多推荐

python(正则表达式(学习))

本文发布于:2024-02-27 06:02:13,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1705457.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:正则表达式   python

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!