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