python笔记26
cuiyongchao007 人气:0
## 一、今日内容
```
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
加载全部内容