-
reg = re.compile(r'xx', re.I) , flag(re.I)的作用是忽略大小写
查看全部 -
正则表达式流程:pattern=>re.compile(r'xxx'), match=>pa.match('str')
python自身匹配方法: str.find('xx')/startswith('xx') <=bool
pa.match方法返回Match对象,现实对象内容使用match.group()
其他方法:match.span()匹配对象跨度/string匹配字符串/re表达式实例
查看全部 -
Python 3 代码,获取图片不在是src开头,另外图片结尾有jpg和npg。特别是下载重命名时不能都命名为jpg格式。
# get html req = urllib.request.urlopen('https://www.imooc.com/course/list') buf_html = req.read().decode('utf-8') images_tmp = re.findall(r'data-original=.*(?:jpg|png)', buf_html) #get image url list img_urls = [] for ins in images_tmp: t = re.split(r'//', ins) img_urls.append('http://' + t[1]) i = 1 for url in img_urls: fileName = open(str(i) + '.' + re.split(r'\.', url)[-1], 'wb') req1 = urllib.request.urlopen(url) buf_image = req1.read() fileName.write(buf_image) i += 1
查看全部 -
正则表达式
查看全部 -
'正则表达式语法' # 匹配的字符串也有[]时,需要转义,如r'\[[\w]\]' # 字符匹配 # . 匹配\n除外的任意字符 # [...] 匹配字符集,如[a-zA-Z0-9] # [\d]/[\D] 匹配数字/非数字 # [\s]/[\S] 匹配空白/非空白 # [\w]/[\W] 匹配单词字符[a-zA-Z0-9]/非单词字符 # 多次匹配 # * 匹配前一个字符0次或无限次,如r'[A-Z][a-z]*'可以匹配前面大写后面小写的任意个字符 # + 匹配前一个字符1次或无限次,如r'[_a-zA-Z]+[_\w]'匹配下划线或字母开头的字符,即匹配有效变量 # ? 匹配前一个字符0次或1次,[1-9]?[0-9]匹配有效的两位数 # {m}/{m,n} 匹配前一个字符m次或者n次,如r'[a-zA-Z0-9]{6,10}@163.com'匹配6-10个字符的邮箱帐号,即匹配指定次数的的字符 # *?/+?/?? 匹配模式变为非贪婪,即尽可能少匹配字符,r'[A-Z][a-z]*?只匹配符合的0次 # 边界匹配,强匹配 # ^ 匹配字符串开头如,r'^[\w]{4,10}@163.com$'匹配以任意4-10个有效字符开头,与@163.com结尾的字符 # $ 匹配字符串结尾 # \A/\Z 指定的字符串必须出现在开头或结尾 # 分组匹配 # | 匹配左右任意一个表达式 # (ab) 括号中表达式作为一个分组 # \<number> 引用编号为num的分组匹配到的字符串 # (?P<name>) 分组起一个别名 # (?P=name) 引用别名为name的分组匹配字符串
查看全部 -
#环境python3.7 import re import urllib.request req=urllib.request.urlopen('https://www.imooc.com/course/list')#读取网站 buf=req.read().decode('utf-8')#读取网站中的字符串 listurl1=re.findall(r'//img.+\.jpg',buf)#找到匹配对象 str1=' '.join(listurl1)#在前面添加https: subhttps=re.sub(r'//','https://',str1) sht=re.split(r' ',subhttps) #保存图片 i=0 for url in sht: f=open(str(i)+'.jpg','wb+')#打开一个文件(文件名,写入方式)若不存在就会创建,wb+才支持byte的写入 req=urllib.request.urlopen(url) buf=req.read() f.write(buf) i+=1
查看全部 -
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) 寻找目标中的所有匹配项,并全部返回一个列表
查看全部 -
表达式语法2
查看全部 -
表达式语法
查看全部 -
正则表达式
查看全部 -
RE模块的其他rerere
查看全部 -
正则表达式语法
查看全部 -
正则表达式语法查看全部
-
正则表达式语法
查看全部
举报
0/150
提交
取消