正则表达式

正则表达式的使用

近来写爬虫经常要从网页中截取某些链接,用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()

你可能感兴趣的:(正则表达式)