《Python网络爬虫与信息提取》第三周 网络爬虫之实战 学习笔记(一)Re(正则表达式)库入门

本文是《Python网络爬虫与信息提取》第三周的学习笔记,重点介绍了Re库和正则表达式的基础知识。内容包括正则表达式的概念、语法、Re库的主要函数如`search`、`match`、`findall`、`split`、`sub`等的使用,以及Match对象和贪婪匹配与最小匹配的概念。
摘要由CSDN通过智能技术生成

目录

一、Re(正则表达式)库入门

1、正则表达式的概念

(1)正则表达式的定义

(2)正则表达式的概念

(3)正则表达式的举例

(4)正则表达式的特点

(5)正则表达式在文本处理中十分常用

(6)正则表达式的使用

2、正则表达式的语法

(1)正则表达式的语法的定义

(2)正则表达式的常用操作符

(3)正则表达式语法实例

(4)经典正则表达式实例

(5)匹配IP地址的正则表达式

 3、Re库的基本使用

(1)Re库介绍

(2)正则表达式的表示类型

(3)Re库主要功能函数

(4)re.search(pattern, string, flags=0)

(5)re.match(pattern, string, flags=0)

(6)re.findall(pattern, string, flags=0)

(7)re.split(pattern, string, maxsplit=0, flags=0)

(8)re.finditer(pattern, string, flags=0)

(9)re.sub(pattern, repl, string, count=0, flags=0)

(10)Re库的另一种等价用法

(11)regex = re.compile(pattern, flags=0)

4、Re库的match对象

(1)Match对象的定义

(2)Match对象的属性

(3)Match对象的方法

(4)Match对象的实例

5、Re库的贪婪匹配和最小匹配

(1)实例

(2)贪婪匹配

(3)最小匹配

(4)最小匹配操作符


一、Re(正则表达式)库入门

1、正则表达式的概念

(1)正则表达式的定义

详解提取页面关键信息。

(2)正则表达式的概念

正则表达式(regular expression、regex、RE),正则表达式是用来简洁表达一组字符串的表达式。

(3)正则表达式的举例

①比如:

'PN'
'PYN'
'PYTN'
'PYTHN'
'PYTHON'

正则表达式:P(Y|YT|YTH|YTHO)?N。

②比如: 

'PY'
'PYY'
'PYYY'
'PYYYY'
......
'PYYYY......'

正则表达式:PY+。

③比如:

'PY'开头
后续存在不多于10个字符
后续字符不能是'P'或'Y'
'PYABC'√
'PYKXYZ'×

正则表达式:(PY[^PY]{0,10})$。

备注:原来是PY[^PY]{0,10},有误;故更改为(PY[^PY]{0,10})$。

(4)正则表达式的特点

①通用的字符串表达框架。

②简洁表达一组字符串的表达式。

③针对字符串表达“简洁”和“特征”思想的工具。

④判断某字符串的特征归属。

(5)正则表达式在文本处理中十分常用

①表达文本类型的特征(病毒、入侵等)。

②同时查找或替换一组字符串。

③匹配字符串的全部或部分。

正则表达式主要应用在字符串匹配中。

(6)正则表达式的使用

编译:将符合正则表达式语法的字符串转换成正则式表达特征。

比如:

'PN'
'PYN'
'PYTN'
'PYTHN'
'PYTHON'

正则表达式:

P(Y|YT|YTH|YTHO)?N
regex = 'P(Y|YT|YTH|YTHO)?N'
编译
p = re.compile(regex)
特征

2、正则表达式的语法

(1)正则表达式的语法的定义

正则表达式语法由字符和操作符构成。

P(Y|YT|YTH|YTHO)?N

(2)正则表达式的常用操作符

操作符 说明 实例
. 表示任何单个字符
[ ] 字符集,对单个字符给出取值范围 [abc]表示a、b、c,[a­z]表示a到z单个字符
[^ ] 非字符集,对单个字符给出排除范围 [^abc]表示非a或b或c的单个字符
* 前一个字符0次或无限次扩展 abc* 表示 ab、abc、abcc、abccc等
+ 前一个字符1次或无限次扩展 abc+ 表示 abc、abcc、abccc等
? 前一个字符0次或1次扩展 abc?表示 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_]

 

(3)正则表达式语法实例

正则表达式 对应字符串
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'、'PYcON'......
PY{:3}N 'PN'、'PYN'、'PYYN'、'PYYYN'

(4)经典正则表达式实例

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值