Python爬虫学习笔记.正则表达式

本文介绍了Python中的正则表达式,包括一般字符、预定义字符集、数量词和边界匹配的概念。同时详细讲解了re库的match()、search()、findall()、sub()和compile()方法的使用,提供了多个示例帮助理解。
摘要由CSDN通过智能技术生成

一,正则表达式介绍

概述:正则表达式是有自己特定语法结构的处理字符串的工具。

Ⅰ,一般字符

字符 含义
. 匹配任意单个字符(不包括换行符\n)
\ 转义字符
[…] (对应字符集中任意字符)
|

.:匹配任意单个字符,如a.c可以匹配的结果为abc,avc等。
\:转义字符,如\n
[…]:在括号中任选一个,如a[bcd],匹配的结果为ab,ac,ad。
|:a|b匹配a或b

Ⅱ,预定义字符集

预定义字符集 含义
\d 匹配一个数字字符。等价于[0-9]
\D 匹配一个非数字字符。等价于[^0-9]
\s 匹配任何空白字符,包括空格,制表符,换页符等。等价于[\f\n\r\t\v]
\S 匹配任何非空白字符,等价于[^\f\n\r\t\v]
\w 匹配字母,数字以及下划线。
\W 匹配不是字母、数字以及下划线的字符。

\f:换页符
\r:回车符(与\n有区别)
\v:垂直制表

Ⅲ,数量词

数量词 含义
* 匹配前一个字符0或无限次
+ 匹配前一个字符1或无限次
匹配前一个字符0或1次
{m} 匹配前一个字符m次
{m,n} 匹配前一个字符m至n次

*:如abc匹配ac,abc,abbc等
+:如ab
c匹配abc,abbc,abbbc等
?:ab?c匹配ac,abc
{m}:如ab{3}c匹配abbbc
{m,n}:如ab{2,4}匹配abbc,abbbc和abbbbc

Ⅳ,边界匹配

边界匹配 含义
^ 匹配字符串开头
$ 匹配字符串结尾
\A 匹配字符串开头
\Z 匹配字符串结尾,若存在换行,仅匹配到换行前的字符串

二,re库的介绍

利用此库,可以在Python中使用正则表达式

1,match()方法

①基本用法
语法:re.match(pattern, string, flags=0)
作用:尝试从字符串起始位置匹配正则表达式
参数:
pattern:匹配的正则表达式
string:要匹配的字符串
flags:标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等,接收标志修饰符
返回值:若匹配成功,返回结果;若失败,返回None。

示例:

import re

string = 'Hello fly 123 4567 World_Cup is a Range Refuge '
re_string = 'Hello\s\D{3}\s\d{3}\s\d{4}\s\w{9}'
result = re.match(string=string,pattern=re_string)
print(result)
print(result.group())#方法group(),输出匹配到的内容
print(result.span())#方法span(),输出匹配的范围

②匹配目标
用()将像提取的子字符串括起来,以标记一个子字符串的起始位置和结束位置,被标记的子字符串会依次对应每一个分组,向group()传递索引可以获取想要的结果。

import re

string = 'Hello fly 123 4567 World_Cup is a Range Refuge '
re_string = 'Hello\s(\D{3})\s\d{3}\s(\d{4})\s\w{9}'
result = re.match(string=string,pattern=re_string)
print(result)
print(result.group(1)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值