sub 与 split
str3 = ‘imooc = 1000’
info = re.sub(r'\d+' , '1001' , str3) 1000替换1001;1001也可以用函数代替
search 与 findall 区别
info = re.search(r' \d+' , str1) 寻找str1中的数字
str2 = 'c++=100,java=90,python=80'
info = re.findall(r'\d+',str2) 寻找目标中的所有匹配项,并全部返回一个列表
RE模块的其他rerere
re的其他方法
re的其他方法
search:在一个字符串中查找匹配
findall:找到匹配,返回所有匹配部分的列表
sub:将匹配出来的部分替换为其他值
split:分割字符串,返回分割后的数组
执行的时候先用 r'[\d]+' 去匹配 str,然后把匹配结果作为参数,传递给add1。相当于ma = re.search(r'[\d]+',str),然后把 ma 传给 add1
使用sub方法后会返回一个新的字符串 原字符串不变
1、search(pattern,string,flags=0)
在一个字符串中查找匹配
2、findall(pattern,string,flags=0)
找到匹配,返回所以匹配部分的列表
3、sub(patten,repl,string,count=0,flags=0)
将字符串中匹配正则表达式部分替换为其他值
4、split(patten,repl,string,count=0,flags=0)
根据匹配分割字符串,返回分割字符串组成的列表
3、
sub(patten,repl,string,count=0,flags=0)
将字符串中匹配正则表达式部分替换为其他值
4、
split(patten,repl,string,count=0,flags=0)
根据匹配分割字符串,返回分割字符串组成的列表
1、
search(pattern,string,flags=0)
在一个字符串中查找匹配
2、
findall(pattern,string,flags=0)
找到匹配,返回所以匹配部分的列表
import re if __name__=="__main__": str = "hello world 100, 96" print(str.find('100')) #在字符串中查找100 info = re.search(r'\d+', str) print(info.group()) str1 = 'C++=100,Java=90, python=80' info1 = re.search(r'\d+', str1) print(info1.group()) info2 = re.findall(r'\d+', str1) print(info2) sum = sum([int(x) for x in info2]) print(sum) str3 = 'imooc videonum =1000' info3 = re.sub(r'\d+', '100', str3) #将字符串中匹配正则表达式的部分替换为其他值 print(info3) info4 = re.sub(r'\d+', '1001', str3) print(info4) str4 = 'I:I C++ Java Python' info5 = re.split(r':| ', str4) print(info5)
re(正则库)的方法:
search:在一个字符串中查找匹配
findall:找到匹配,返回所有匹配部分的列表
sub:将匹配出来的部分替换为其他值
split:分割字符串,返回分割后的数组
sum([int(x) for x in info]) 可做到对list式求和
这个分割的功能挺好。
正则表达式:import re
\ 转义字符
. 匹配任意一个字符(处理\n)
[...] 匹配字符集中的任何一个字符
\d/\D 匹配数字/非数字
\s/\S 匹配空白/非空白字符
\w/\W 匹配单词字符[a-zA-Z0-9]/非单词字符
* 匹配前一个字符0次或者无限次
+ 匹配前一个字符1次或者无限次
? 匹配前一个字符0次或者1次
{m}/{m,n} 匹配前一个字符m次或者n次
*?/+??? 匹配模式变为非贪婪(尽可能少匹配字符)
^ 匹配字符串开头
$ 匹配字符串结尾 (在字符串的后边加$)
\A/\Z 指定的字符串
1:search(pattern,string,flags=0) 在一个字符串中查找匹配
2:findall(pattern,string,flags=0) 找到匹配,返回所有匹配部分的列表
3:sub(pattern,repl,string,count=0,flags=0) 将字符串中匹配正则表达式的部分替换为其他值
4:split(pattern,string) 根据匹配分割字符串,返回分割字符串组成的列表
search:在一个字符串中查找匹配
findall:找到匹配,返回所有匹配部分的列表
sub:将匹配出来的部分替换为其他值
split:分割字符串,返回分割后的数组
split 例子
sub ,参数2 函数
re模块中 sub 和 split 函数的使用
re模块中search 和 findall 函数的使用
search:在一个字符串中查找匹配
findall:找到匹配,返回所有匹配部分的列表
sub:将匹配出来的部分替换为其他值
split:分割字符串,返回分割后的数组
sub 将字符串中正则表达式的部分替换成其他值
split 根据匹配分割字符串,返回分割字符串组成的列表
search在一个字符串中查找匹配 findall找到匹配,返回所有匹配不发的列表
正则表达式的函数
正则表达式的方法
search查找第一个
findall查找所有
#使用python3.0实现下载图片
from urllib import request import re url=r'https://www.imooc.com/course/list?c=python&type=1' response=request.urlopen(url) data=response.read() data=data.decode('utf-8') #print(data) # 慕课网图片地址变了 src="//img........jpg" urllist=re.findall(r'src=.+\.jpg',data) #print(urllist) index = 1 for imgurl in urllist: f = open('imooc'+str(index)+".jpg","wb") # 慕课网图片地址变了 src="//img........jpg" #需要转换一下 imgurl = re.sub(r'^src=.','http:',imgurl) img_request = request.urlopen(imgurl) img_buf=img_request.read() f.write(img_buf) f.close() index += 1