大家在学会基本的Python爬虫后,会不会感觉还是挺简单的,那如果我们需要对爬取的内容进行检索或筛选数据呢?
这里就要用到小编给大家介绍的RE库,叫正则表达式,也是掌握爬虫必备的利器。
1.简介
简介:RE库(英文解释为regular expression,在代码中简写为regex或RE)是Python的标准库,主要用于字符匹配。
正则表达式使用字符串来描述、匹配一系列某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些匹配某个模式的文本。
2.为什么是正则表达式呢
对于使用正则表达式的好处,给小编感觉是简洁,但不易上手,平时用得也不多,主要是用在匹配字符串。
至于为什么是正则表达式,小编这里给大家列出关于使用正则表达式的优势:
1.通用的字符串表达框架。
2.简洁表达一组字符串的表达式。
3.针对字符串表达“简洁和“特征”思想的工具。
4.判断某字符串的特征属性。
3.正则表达式的语法
操作符 | 介绍 | 实例 |
---|---|---|
. | 表示任何单个字符 | 无 |
[] | 字符集,对单个字符给出取值范围 | [abc]表示a,b,c,[a-z]表示a到z单个字符 |
[^] | 非字符集,对单个字符给出排除范围 | [^abc]表示非a或非b或c的单个字符 |
* | 前一个字符0次或无限次扩展 | abc*表示ab,abc,abcc,abccc等 |
+ | 前一个字符1次或无限次扩展 | abc+表示abc,abcc,abccc,等 |
? | 前一个字符0次或一次扩展 | bc?表示ab,abc |
| | 左右表达式任意一个 | abc|def表示abc,def |
{m} | 扩展前一个字符m次 | ab{2}c表示abbc |
{m,n} | 扩展前一个字符m至n次(含n) | ab{1,2}c表示abc,abbc |
^ | 匹配字符串开头 | ^abc表示abc且在一个字符串的开头 |
$ | 匹配字符串结尾 | abc$表示abc且在一个字符串的结尾 |
() | 分组标记,内部只能使用|操作符 | (abc)表示abc,(abc|def)表示abc或def |
\d | 数字,等价于[0-9] | 无 |
\w | 单词字符,等价于[A-Za-z0-9_] | 无 |
代表实例:
正则表达式 | 对应字符串 |
---|---|
P(Y|YT|YTH|YTHO)?N | 'PN'、'PYN','PYTN','PYTHN','PYTHON' |
PYTHON+ | 'PYTHON','PYTHONN','PYTHONNN'... |
PY[TH]ON | 'PYTON','PYHON' |
PY[^TH]?ON | 'PYON','PYaON','PYbON'... |
PY{:3}N | 'PN','PYN','PYYN','PYYYN' |
4.经典正则表达式实例
正则表达式 | 对应字符串 |
---|---|
^[A-Za-z]+$ | 由26个字母组成的字符串 |
^[A-Za-z0-9]+$ | 由26个字母和数字组成的字符串 |
^-?\d+$ | 整数形式的字符串 |
^[0-9]*[1-9][0-9]*$ | 正整数形式的字符串 |
[1-9]\d{5} | 中国境内邮政编码,6位,[1-9]已经表示一位了,后面再加5位 |
[\u4e00-\u9fa5] | 匹配正文字符 |
\d{3}=\d{8}|\d{4}-\d{7} | 国内电话号码,010-68913536 |
Python爬虫系列,未完待续...