正则表达式
因为beautifulsoup之类的库只能对HTML文档进行解析
但是现在很多都是内嵌在js代码里面了,这个时候就需要使用到正则表达式来进行定位的操作
import re
上面这个包是python内置的,不需要另外安装
百度--正则表达式手册
就可以查看到全部正则表达式内容
*可以匹配前面的子表达式零次或者多次,zo*可以匹配z,以及zoo,*等价于{0,}
+可以匹配前面的子表达式一次或者多次,zo+可以匹配zo,以及zoo,+等价于{1,}
?可以匹配前面的子表达式一次或者零次,zo?可以匹配z,以及zo
\s可以匹配任何空白字符,包括空格、制表符、换页符等
\d代表0-9任意数字
\w代表小写a-z,A-Z,_,0-9
\s代表空白字符
import re
text = 'HelloHelloHello'
r = re.compile('H.*?o',re.S|re.I)
print(r.search(text).group())
.*?就是惰性匹配方法,意思是当满足这个条件一次,就立刻停止
Hello出现了三次,但是当第一个hello通过惰性匹配满足了一次,就立刻停止再继续往后面去循环匹配
search(全局匹配)match(从头匹配)
.group(获取内容).findall(匹配全部)
re.S 匹配换行符 re.I不区分大小写
import re
test='hello world'
re_com=re.compile('h(.*?)o w(.*?)d',re.I|re.S)
result= re_com.search(test).group()
print(result)
.group() 结果 hello world
.groups() 结果 (‘ell’,‘orl’) -----------------输出所有结果
.gourp(1) 结果 ell ----------------输出第一个正则表达式结果
.group(2) 结果 orl ----------------输出第二个正则表达式结果