正则表达式的使用
近来写爬虫经常要从网页中截取某些链接,用find方法很是麻烦,现在发现正则表达式是真的好用,写出来分享一下
有一个笑话讲的好,当你发现有一个问题能用正则表达式解决时,你就有了两个问题,确实是这样,构造一个表达式确实没有现象中那么简单\
我以python中re模块作为测试,最后以抓取(百度壁纸吧)[https://tieba.baidu.com/p/3740796143#!/l/p1]的图片为例写一个python代码
()[]
实例
.是和windows中*一样作用的通配符
!()[]
那如果我想单独匹配.怎么办?用\把特殊含义去掉就好
用中括号可以匹配任意字符类
!()[]
如上图所示,[0-9]很明显重复了,所以我们可以这样写,用大括号可以描述重复次数
!()[]
\d可以表示任意数字
!()[]
那我们试着描述一下192.168.1.1/24这个地址段
先分析一下它有什么特点,每个数字的范围都是0-255,那我们试着描述一下
!()[]
怎么匹配到了1?
很不幸的是匹配只能匹配到0-9,所以得这样写
!()[]
这还只是三位数的,那么10.3.9.12这样的就没办法表示了,那怎么办呢?
用过{0,1}表示一下次数就好了
!()[]
好了,就是这么长一串 0.0
|是或的意思
例如:
!()[]
^表示出现在头部
$表示出现在尾部
例如:
!()[]
\后加数字表示子组
例如匹配 LavinciLavinci
[^a-z]脱字符表示取反
!()[]
//未完待续
import re
pattern = re.compile(r'hello')
match = pattern.match('hello world!')
if match:
print match.group()
网友评论