-
import re #导入re模块
生成pattern对象:pa = re.compile(r'imooc') #匹配的字符
生成match对象:ma = pa.match('imooc.com') #被匹配的字符
ma.group() ==>imooc #返回匹配的字符
ma.span() ==>(0,5) #被匹配字符串所在索引位置
ma.string() ==>'imooc.com' #返回被匹配字符串
查看全部 -
python3代码
import re
from urllib import request
url = 'https://www.imooc.com/course/list'
html = request.urlopen(url).read().decode('utf-8')
listurl = re.findall(r'src=.+\.jpg',html)
for i in range(len(listurl)):
listurl[i] = re.sub(r'src="','',listurl[i]) #把src="去掉
i = 1
for url in listurl:
f = open('E:\\test\\imooc\\scrap\\data\\'+str(i)+'.jpg','wb+')
html = request.urlopen('https:'+url).read() #必须要加上https:
f.write(html)
f.close()
i += 1
查看全部 -
正则表达式的作用:<br> 1.使用单个字符串来描述匹配一系列符合其语法规则的字符串<br> 2.是对字符串操作的一种逻辑公式<br> 3.处理文本和数据 4.正则表达式过程:依次拿出表达式和文本中的字符比较,如果每一个字符都能匹配,则匹配成功、否则匹配失败。查看全部
-
正则表达式re模块使用: 1.导入re模块#import re 2.利用re.compile(正则表达式)返回pattern 3.利用pattern.match(待匹配字符串)返回match match.group()返回子串 match.string()返回主串 match.span()返回子串在主串中的位置查看全部
-
f = open(str(i)+'.jpg', "wb") 使用二进制写方式打开文件,保存图片,不然图片会马赛克。查看全部
-
1.生成正则方式一:pa = re.comppile(r'需要匹配字符') ma = pa.match('任意字符') ma.group() 生成正则方法二:ma = re.match(r'需要匹配字符','任意字符') ma.group() 2.group():生成字符 ; groups():生成元组 3.pa = re.comppile(r'需要匹配字符',re.I): 不区分大小写查看全部
-
search(pattern, string, flags=0) #在一个字符串中查找匹配 findall(pattern, string, flags=0) #返回所有匹配的列表集合 sub(pattern, repl, string, count=0, flags=0) #匹配部分替换为其他值 split(pattern, string, maxsplit=0, flags=0) #根据匹配分割字符串,返回分割字符串组成的列表查看全部
-
(1) 如果不创建pattern对象 使用re.match函数可以直接进行正则表达式的匹配 re.match 尝试从字符串的开始匹配一个模式 这种方式更简洁,编写一些小脚本完全可以胜任 不过不适合大型程序的编写,后期维护可能会产生困难 (2) 若是有大量的匹配 只有一个正则表达式 可以提前生成pattern对象 用pattern对象来match查看全部
-
这里提供python3.4.4实现本课的方法: import urllib.request import re req = urllib.request.urlopen('http://www.imooc.com/course/list?c=python') buf = req.read() rs = buf.decode() listurl = re.findall(r'http://.+\.jpg', rs) print(listurl) i = 0 for url in listurl: f = open(str(i)+'.jpg', 'wb') req = urllib.request.urlopen(url) buf = req.read() # print(buf) f.write(buf) i += 1 截取的图片在项目的根目录下查看全部
-
. 匹配除 "\n" 之外的任何单个字符。要匹配包括 '\n' 在内的任何字符,请使用象 '[.\n]' 的模式。 \d 匹配一个数字字符。等价于 [0-9]。 \D 匹配一个非数字字符。等价于 [^0-9]。 \s 匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。 \S 匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。 \w 匹配包括下划线的任何单词字符。等价于'[A-Za-z0-9_]'。 \W 匹配任何非单词字符。等价于 '[^A-Za-z0-9_]'。 [0-9] 匹配任何数字。类似于 [0123456789] [a-z] 匹配任何小写字母 [A-Z] 匹配任何大写字母 [a-zA-Z0-9] 匹配任何字母及数字查看全部
-
pa = re.compile(r'要查找的字符串')
ma = pa.match(被查找的字符串)
等价于
ma = re.match(r'要查找的字符串', 被查找的字符串)
ma.groups用于返回元祖类型
pa.match(r'(要查找的字符串)')要查找的字符串被括号括起来即可返回元祖类型
查看全部 -
. 匹配所有字符(除了换行符\n) [...] 匹配字符集[a-zA-Z0-9] \d/\D 匹配数字/匹配非数字 \s/\S 匹配空白字符/匹配非空白字符 \w/\W 匹配单词字符[a-zA-Z0-9](,.等都不能匹配)/匹配非单词字符(,.等都能匹配)查看全部
-
1.import re #导入re模块 2.生成pattern对象:pa = re.compile(r'imooc') #匹配的字符 3.生成match对象:ma = pa.match('imooc.com') #被匹配的字符 4.ma.group() ==>imooc #返回匹配的字符 5.ma.span() ==>(0,5) #被匹配字符串所在索引位置 6.ma.string() ==>'imooc.com' #返回被匹配字符串 7.ma.re ==>re.compile(r'imooc') #返回实例查看全部
-
#^ 匹配字符串的开头 #$ 匹配字符串的结尾 ma = re.match(r'^[a-zA-Z0-9]{6,10}@[/w]*.COM$','760799578@QQ.COM') #\A必须以我为字符串的开头 ma = re.match(r'\Aimmoc[\w]*','immocpython') #| 匹配左右任意一个表达式 ma = re.match(r'abc|d','abc') #(ab) 括号中表达式作为一个分组 ma = re.match(r'^[\w]{4,6}@(163|126).(COM|com)$','760799578@QQ.COM') #\<number> 引用编号为number的分组匹配到的字符串 ma = re.match(r'<([\w]+)[\w]+</\1','<book>python</book>') #(?P<name>) 分组起别名 ma = re.match(r'<(?P<mark>[\w]+)[\w]+</(?P=mark)','<book>python</book>') #(?P=name) 引用别名为name的分组匹配字符串查看全部
-
正常匹配需要使用compile、match方法,先生成一个pattern对象,再生成一个match对象。pattern对象相当于将匹配字符串进行了包装,便于之后的match(匹配)。生成的的match对象是将原字符串与匹配字符串进行比较,将匹配成功的结果存入match对象中。使用group()方法可以将匹配成功的结果打印出来。查看全部
举报