一、Python所有方向的学习路线
Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
二、学习软件
工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。
三、入门学习视频
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
print(re_obj.match(s_true).start())
0
print(re_obj.match(s_true).end())
3
print(re_obj.match(s_true).string)
123what is a boy
print(re_obj.match(s_true).group())
123
print(re_obj.match(s_false))
None
d、search方法
search方法,模式匹配成功后,也会返回一个SRE_Match对象,search方法和match的方法区别在于match只能从头开始匹配,而search可以从字符串的任意位置开始匹配,他们的共同点是,如果匹配成功,返回一个SRE_Match对象,如果匹配失败,返回一个None,这里还要注意,search仅仅查找第一次匹配,也就是说一个字符串中包含多个模式的匹配,也只会返回第一个匹配的结果,如果要返回所有的结果,最简单的方法就是findall方法,也可以使用finditer方法
e、finditer方法
finditer返回一个迭代器,遍历迭代器可以得到一个SRE_Match对象,比如下面的例子
‘’’
学习中遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
‘’’
re_str = “what is a different between python 2.7.14 and python 3.5.4”
re_obj = re.compile(“\d{1,}.\d{1,}.\d{1,}”)
for i in re_obj.finditer(re_str):
print(i)
<_sre.SRE_Match object; span=(35, 41), match=‘2.7.14’>
<_sre.SRE_Match object; span=(53, 58), match=‘3.5.4’>
2、修改类方法介绍
a、sub方法
re模块sub方法类似于字符串中的replace方法,只是sub方法支持使用正则表达式,所以,re模块的sub方法使用场景更加广泛
re_str = “what is a different between python 2.7.14 and python 3.5.4”
re_obj = re.compile(“\d{1,}.\d{1,}.\d{1,}”)
print(re_obj.sub(“a.b.c”,re_str,count=1))
what is a different between python a.b.c and python 3.5.4
print(re_obj.sub(“a.b.c”,re_str,count=2))
what is a different between python a.b.c and python a.b.c
print(re_obj.sub(“a.b.c”,re_str))
what is a different between python a.b.c and python a.b.c
b、split方法
re模块的split方法和python字符串中的split方法功能是一样的,都是将一个字符串拆分成子字符串的列表,区别在于re模块的split方法能够使用正则表达式
比如下面的例子,使用. 空格 : !分割字符串,返回的是一个列表
‘’’
学习中遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
‘’’
re_str = “what is a different between python 2.7.14 and python 3.5.4 USA:NewYork!Zidan.FRA”
re_obj = re.compile(“[. :!]”)
print(re_obj.split(re_str))
[‘what’, ‘is’, ‘a’, ‘different’, ‘between’, ‘python’, ‘2’, ‘7’, ‘14’, ‘and’, ‘python’, ‘3’, ‘5’, ‘4’, ‘USA’, ‘NewYork’, ‘Zidan’, ‘FRA’]
c、大小写不敏感设置
re.compile(flags=re.IGNORECASE)
d、非贪婪匹配
非贪婪匹配,贪婪匹配总是匹配到最长的那个字符串,相应的,非贪婪匹配是匹配到最小的那个字符串,只需要在匹配字符串的时候加一个?即可
下面的例子,注意两个.
s = “Beautiful is better than ugly.Explicit is better than impliciy.”
re_obj = re.compile(“Beautiful.*y.”)
print(re_obj.findall(s))
[‘Beautiful is better than ugly.Explicit is better than implicit.’]
re_obj = re.compile(“Beautiful.*?.”)
print(re_obj.findall(s))
[‘Beautiful is better than ugly.’]
e、在正则匹配字符串中加一个小括号,会有什么的效果呢?
如果是要配置一个真正的小括号,那么就需要转义符,下面的例子大家仔细看下,注意下search方法返回的对象的group(1)这个方法是报错的
‘’’
学习中遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
‘’’
import re
s = “=aa1239d&&& 0a ()–”
obj = re.compile(“()”)
search
rep = obj.search(s)
print(rep)
<_sre.SRE_Match object; span=(15, 17), match=‘()’>
print(rep.group(1))
IndexError: no such group
print(rep.group())
()
findall
rep = obj.findall(s)
print(rep)
[‘()’]
如果是要返回括号中匹配的字符串中,则该小括号不需要转义符,findall方法返回的是小伙好中匹配到的字符串,search.group()方法的返回的整个模式匹配到字符串,search.group(1)这个是匹配第一个小括号中的模式匹配到的字符串,search.group(2)这个是匹配第二个小括号中的模式匹配到的字符串,以此类推
s = “=aa1239d&&& 0a ()–”
rep = re.compile(“\w+(&+)”)
print(rep.findall(s))
[‘&&&’]
print(rep.search(s).group())
aa1239d&&&
print(rep.search(s).group(1))
最后
🍅 硬核资料:关注即可领取PPT模板、简历模板、行业经典书籍PDF。
🍅 技术互助:技术群大佬指点迷津,你的问题可能不是问题,求资源在群里喊一声。
🍅 面试题库:由技术群里的小伙伴们共同投稿,热乎的大厂面试真题,持续更新中。
🍅 知识体系:含编程语言、算法、大数据生态圈组件(Mysql、Hive、Spark、Flink)、数据仓库、Python、前端等等。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!