第八部分正则表达式
import re
pat='yue'#原子
string='http://iqianyue.com'
res=re.search(pat,string)
print(res)
string2='bcjbwbuebj'
res2=re.search(pat,string2)
print(res2)
原子:
通用字符:\w:匹配字母数字下划线;\W为其补集
\d:匹配十进制数字;\D为其补集
\s:匹配任意空白字符;\S为其补集
pat='ghdsg[jia]bnnvv'[]内的任一元素且只能一个元素被匹配到即可
*表示匹配前面原子次数为0,1,多次
's*'可以匹配s,ss,sss,...
's?'可以匹配s,ss.
's+'可以匹配ss,sss,....
's{3}'表示3个s连在一起sss
's{3,}'表示s至少出现3次
's{3,7}'表示s出现次数介于3,7之间
's|t'表示s或t
'()'提取
'.'匹配除了换行符任意字符
'^'非
模式修正符re.search(pat,string,re.I)
I修正不区分大小写
M多行匹配
L本地化识别匹配
S使.也能匹配换行符
re.match()从头开始匹配,头部必须满足
re.search()只能返回一个结果
re.compile(pat).findall(string)可以返回所有结果
#爬取网站qq群
pat1='<span class="red">(.*?)%</span>'
pat2='<p class="fl">51CTO学院Python实战群(.*?)</p>'
#<span class="red">100%</span>
#<p class="fl">51CTO学院Python实战群(325935753)</p>
import urllib.request
data1=urllib.request.urlopen('http://edu.51cto.com/course/12803.html').read()
res1=re.compile(pat1).findall(str(data1))
print(res1)
data2=urllib.request.urlopen('http://edu.51cto.com/course/12803.html').read()
res2=re.compile(pat2).findall(str(data2))
print(res2)