print(re.findall(“\w{2}”, “abc12_”))
输出结果:
[‘ab’, ‘c1’, ‘2_’]
(6)*
*表示匹配零次或多次(尽可能的多去匹配),例如:
print(re.findall(“010-\d*”, “010-123456789”))
输出:
[‘010-123456789’]
**(7) + **
+表示匹配一次或多次,例如
print(re.findall(“010-\d+”, “010-123456789”))
输出:
[‘010-123456789’]
(8) .
.是个点,这里不是很明显,它用来操作除了换行符以外的任何字符,例如:
print(re.findall(“.”, “010\n?!”))
输出:
[‘0’, ‘1’, ‘0’, ‘?’, ‘!’]
(9) ?
?表示匹配一次或零次
print(re.findall(“010-\d?”, “010-123456789”))
输出:
[‘010-1’]
这里要注意一下贪婪模式和非贪婪模式。
贪婪模式:尽可能多的去匹配数据,表现为\d后面加某个元字符,例如\d*:
print(re.findall(“010-\d*”, “010-123456789”))
输出:
[‘010-123456789’]
非贪婪模式:尽可能少的去匹配数据,表现为\d后面加?,例如\d?
print(re.findall(“010-\d*?”, “010-123456789”))
输出为:
[‘010-’]
(10){m,n}
m,n指的是十进制数,表示最少重复m次,最多重复n次,例如:
print(re.findall(“010-\d{3,5}”, “010-123456789”))
输出:
[‘010-12345’]
加上?表示尽可能少的去匹配
print(re.findall(“010-\d{3,5}?”, “010-123456789”))
输出:
[‘010-123’]
{m,n}还有其他的一些灵活的写法,比如:
-
{1,} 相当于前面提过的 + 的效果
-
{0,1} 相当于前面提过的 ? 的效果
-
{0,} 相当于前面提过的 * 的效果
关于常用的元字符以及使用方法就先到这里,我们再来看看正则的其他知识。
1.编译正则
在Python中,re模块可通过compile() 方法来编译正则,re.compile(正则表达式),例如:
s = “010-123456789”
rule = “010-\d*”
rule_compile = re.compile(rule) #返回一个对象
print(rule_compile)
s_compile = rule_compile.findall(s)
print(s_compile) #打印compile()返回的对象是什么
输出结果:
[‘010-123456789’]
2.正则对象的使用方法
正则对象的使用方法不仅仅是通过我们前面所介绍的 findall() 来使用,还可以通过其他的方法进行使用,效果是不一样的,这里我做个简单的总结:
(1)findall()
找到re匹配的所有字符串,返回一个列表
(2)search()
扫描字符串,找到这个re匹配的位置(仅仅是第一个查到的)
(3)match()
决定re是否在字符串刚开始的位置(匹配行首)
就拿上面的 compile()编译正则之后返回的对象来做举例,我们这里不用 findall() ,用 match() 来看一下结果如何:
s = “010-123456789”
rule = “010-\d*”
rule_compile = re.compile(rule) # 返回一个对象
print(rule_compile)
s_compile = rule_compile.match(s)
print(s_compile) # 打印compile()返回的对象是什么
输出:
<re.Match object; span=(0, 13), match=‘010-123456789’>
可以看出结果是1个match 对象,开始下标位置为0~13,match为 010-123456789 。既然返回的是对象,那么接下来我们来讲讲这个match 对象的一些操作方法。
3.Match object 的操作方法
这里先介绍一下方法,后面我再举例,Match对象常见的使用方法有以下几个:
(1)group()
返回re匹配的字符串
(2)start()
返回匹配开始的位置
(3)end()
返回匹配结束的位置
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Python开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注Python)
文末有福利领取哦~
👉一、Python所有方向的学习路线
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
👉二、Python必备开发工具
👉三、Python视频合集
观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
👉 四、实战案例
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。(文末领读者福利)
👉五、Python练习题
检查学习结果。
👉六、面试资料
我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
👉因篇幅有限,仅展示部分资料,这份完整版的Python全套学习资料已经上传
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
a06969e54cf180f4904270636b8e.png)
👉六、面试资料
我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
👉因篇幅有限,仅展示部分资料,这份完整版的Python全套学习资料已经上传
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
[外链图片转存中…(img-AtSIZ2tv-1712435347769)]