正则表达式总结

浏览: 1772

要进行网络爬虫,一个绕不开的问题就是正则表达式的问题,在这篇文章里,我回顾了正则表达式的各种匹配模式,并在文章最后给出了一个小的网络爬虫案例。

主要内容:

1:正则表达式基本概念

2:python正则表达式re模块

3:正则表达式语法

4:re模块相关方法使用

 

为什么使用正则

疑问:字符串匹配就可以实现?

 

正则表达式概念:

1:使用单个字符串来描述匹配一系列符合某个语法规则的字符串

2:是对字符串操作的一种逻辑公式

3:应用场景:处理文本和数据

4:正则表达式过程:一次拿出表达式和文本中的字符比较,如果每一个字符都能匹配,则匹配成功;否则匹配失败。 

Python第一个正则表达式

1:import  re:python正则表达式模块

2:第一个正则表达式

r’  ’    Pattern   Match    result

import  re

pa = re.compile(r‘ ’)  #r的作用:我们一般需要匹配的内容里可能会 出现\n或者\t,容易出现转义,所以引入r,代表匹配的是后面引号里的原字符串

pa即为pattern的实例)

type(pa)

_sre.SRE_Pattern

(pa有很多方法,这里主要使用其中的match方法,pa.match(str) 返回对象为匹配对(str)象或者None)

ma = pa.match(str)

ma.group()

ma.span()  #匹配结果的索引位置

实例:

pa1 =re.compile(r’_’)

ma1 =pa1.match(‘_value’)

ma1.group()

‘_’

(若pa1 =re.compile(r’(_)’),则ma1.groups()可以返回(‘_’, )。否则返回()空集)

如果在匹配时需要忽略大小写的影响:

pa1 =re.compile(r’_’, re.I)    ##  I表示IGNORECASE忽略



python正则表达式语法(一)

匹配单个字符

image.png

python正则表达式语法(二)

匹配多个字符

image.png

python正则表达式语法(三)

边界匹配

image.png

建议以上都在python中试一遍



Python正则表达式—re模块其他方法

1:search(pattern, string, flags = 0)

在一个字符串中查找匹配

2:findall(pattern, string, flags = 0)

找到匹配,返回所有匹配部分的列表

3:sub(pattern, repl, string, count = 0, flags = 0)

       将字符串中匹配正则表达式的部分替换为其他值(repl可以使字符串或者函数,如果是函数则返回函数结果)

4:split(pattern, string, maxsplit = 0, flags = 0)

       根据匹配分割字符串,返回分割字符串组成的列表

Python正则表达式—练习

抓取网页中的图片到本地:

1:抓取网页

2:获取图片地址

3:抓取图片内容并保存到本地

代码如下:

image.png

文章素材及源码下载:链接:http://pan.baidu.com/s/1qYx15IO 密码:uhvh

欢迎关注交流

0 (2).gif


推荐 0
本文由 吴小鹏 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册