python笔记26

软件发布|下载排行|最新软件

当前位置:首页IT学院IT技术

python笔记26

cuiyongchao007   2020-03-08 我要评论
## 一、今日内容 ``` python中的方法 python中的方法+正则表达式的新内容 #分组 #分组命名 #引用分组 #爬虫的小例子 ``` ### 1、转义符 ```python 如:\n--->\\n--->print('\\n')#\n 如:print('\\\\n')#\\n print(r'\n') print(r'\\n') #正则表达式中的转义符在python的字符串中也刚好有转义的作用 #但是正则表达式中的转义和字符串中的转义符并没关系 #且还容易冲突 #为避免这种冲突 #我们所有的正则都以工具中的测试结果为结果 #然后只需要在正则和待匹配的字串外面的都加‘r’即可。 如: print(r'\n') print(r'\\n') ``` ### 2、re模块(findall,search,match) ```python import re ret=re.findall('\d',alex83) ret=re.findall('\d+',alex83) print(ret) #findall会匹配字符串中所有符合规则的项 #并返回一个列表 #如果未匹配到返回空列表 ret=re.search('\d','alex83') print(ret)#如果能匹配上返回一个对象,如果不能匹配,返回none if ret: print(ret.group())#8 #如果是对象,那么这个对象内部实现了group,所以可以取值。 #如果是none,那么这个对象不可能实现了group方法,所以报错 #会从头到尾从带匹配匹配字符串中取出第一个符合条件的项。 #如果匹配到了,返回一个对象,用group取值。 #如果没匹配到,返回none,不能用group。 ret=re.search('\d+','alex83') print(ret) print(ret.group())#83 re.match ret=re.match('\d','6alex83')==re.match('^\d','6alex83') print(ret) print(ret.group())#6 #会从头匹配字符串中取出从第一个字符开始是否符合规则 #如果符合,就返回对象,用group取值。 #如果不符合,就返回none #match=search+正则 ``` ### 3、re其他方法及拓展 ```python 1、时间复杂度,效率 compile #在同一个正则表达式重复使用多次的时候使用能够减少时间开销。 2、空间复杂度,内存占用率 finditer #在查询的结果超过1个情况下,能够有效的节省内存,降低空间复杂度,从而也降低了时间复杂度。 3、用户体验 大数据量的时候: import re ret=re.findall('\d','alhlajanlha12llhlajlmahlj4'*2000000) print(ret) ===== import re ret=re.finditer('\d','alhlajanlha12llhlajlmahlj4'*2000000) for i in ret:#迭代出来的每一项都是一个对象 print(i.group())#通过group取值即可 re.compile() #\d正则表达式,---》字符串 #\d str,循环str,找到所有的数字。 s = '
.*?
.*?(?P

Copyright 2022 版权所有 软件发布 访问手机版

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 联系我们