第八部分正则表达式

2019-02-01  本文已影响0人  护国寺小学生

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)

上一篇 下一篇

猜你喜欢

热点阅读