正则表达式语法:
* 匹配前一个字符0次或无限次
+ 匹配前一个字符1次或无限次
? 匹配前一个字符0次或1次
{m}/{m,n}匹配前一个字符m次或m到n次
*? / +? / ?? 匹配模式为非贪婪模式
import re
ma=re.match(r’[\w]*?’,’I am a boy’)
边界匹配:
^ 匹配字符串开头
$ 匹配字符串结尾
\A/\Z 指定的字符串必须出现在开头/结尾
分组匹配:
| 匹配左右任意一个表达式
(ab) 括号中表达式作为一个分组
\ 引用编号为num的分组匹配到的字符串
(?P) 分组起一个别名
(?p=name) 引用别名为name的分组匹配字符串
python正则表达式的re模块其他方法:
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,maxsplit=0,flags=0)
根据匹配分割字符串,返回分割字符串组成的列表
python正则表达式练习:
抓取网页中的图片到本地:
1.抓取网页,
2.获取图片地址
3.抓取图片内容并保存到本地
import urllib2
req = urllib2.urlopen('http://www.imooc.com/course/list')
buf = req.read()
print buf
import re
listurl =re.findall(r'http:.+\.jpg',buf)
print listurl
i=0
for url in listurl:
f = open(str(i)+'.jpg','w')
req = urllib2.urlopen(url)
buf = req.read()
f.write(buf)
i+=1