可以参考:http://www.runoob.com/regexp/regexp-syntax.html
为什么要学正则表达式:
实际上爬虫一共就四个主要步骤:
- 明确目标 (要知道你准备在哪个范围或者网站去搜索)
- 爬 (将所有的网站的内容全部爬下来)
- 取 (去掉对我们没用处的数据)
- 处理数据(按照我们想要的方式存储和使用)
之前我们down下了的数据是全部的网页,这些数据很庞大并且很混乱,大部分的东西使我们不关心的,因此我们需要将之按我们的需要过滤和匹配出来
正则表达式概述
正则表达式,又称正规表示式、正规表示法、正规表达式、规则表达式、常规表示法(英语:Regular Expression,在代码中常简写为regex、regexp或RE),是计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些匹配某个模式的文本。
Regular Expression的“Regular”一般被译为“正则”、“正规”、“常规”。此处的“Regular”即是“规则”、“规律”的意思,Regular Expression即“描述某种规则的表达式”之意。
Python 的 re 模块
- 在 Python 中,我们可以使用内置的 re 模块来使用正则表达式。 有一点需要特别注意的是,正则表达式使用 对特殊字符进行转义,所以如果我们要使用原始字符串,只需加一个 r 前缀,示例: re 模块的一般使用步骤如下:
- 使用 compile() 函数将正则表达式的字符串形式编译为一个 Pattern 对象
- 通过 Pattern 对象提供的一系列方法对文本进行匹配查找,获得匹配结果,一个 Match 对象。
- 最后使用 Match 对象提供的属性和方法获得信息,根据需要进行其他的操作
compile 函数
-
compile 函数用于编译正则表达式,生成一个 Pattern 对象,它的一般使用形式如下:
import re
#将正则表达式编译成 Pattern 对象
pattern= re.compile(r'\d+')
修饰符号 | 描述 |
---|---|
re.I | 使用匹配对大小写不敏感(不区分大小写) |
re.S | 使.匹配包括换行符在内的所有字符 |
re.M | 多行匹配 |
re.L | 做本地化识别 |
在上面,我们已将一个正则表达式编译成 Pattern 对象,接下来,我们就可以利用 pattern 的一系列方法对文本进行匹配查找了。 Pattern 对象的一些常用方法主要有:
match 方法 | 从起始位置开始查找,一次匹配 |
---|---|
search 方法 | 从任何位置开始查找,一次匹配 |
findall 方法 | 全部匹配,返回列表 |
finditer 方法 | 全部匹配,返回迭代器 |
split 方法 | 分割字符串,返回列表 |
sub 方法 | 替换 |