正则表达式

正则表达式的使用

近来写爬虫经常要从网页中截取某些链接,用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()
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 初衷:看了很多视频、文章,最后却通通忘记了,别人的知识依旧是别人的,自己却什么都没获得。此系列文章旨在加深自己的印...
    DCbryant阅读 4,106评论 0 20
  • re模块手册 本模块提供了和Perl里的正则表达式类似的功能,不关是正则表达式本身还是被搜索的字符串,都可以...
    喜欢吃栗子阅读 4,088评论 0 13
  • 百度地图路线规划的官方demo里并没有节点浏览,实现按钮点击遍历节点信息可以通过开一个数组装RouteAnnota...
    杨大虾阅读 593评论 0 0
  • 3月19日读完此书。此书是严歌苓的作品,读它也是冲着严歌苓的名去的。讲述的是一个高中老师与两个学生『三角恋』的故事...
    故纸旧人阅读 297评论 0 0
  • 自从更新了Xcode9,xcode自带的git就不太好使了,掌握一些常用的git命令必不可少 学习git比较好的网...
    流星大石头阅读 223评论 0 0