Python 之正则表达式

下面的这个结构图基本覆盖了正则表达式上手基础的所有内容,总结自书《精通Python网络爬虫》,包括原子、元字符、模式修正、贪婪模式和懒惰模式以及常用函数等。
更加详细的见W3C的教程:https://www.w3cschool.cn/python/python-reg-expressions.html

这里写图片描述

原子

普通字符:

普通字符作为原子是指一些字母,数字,下划线等你需要完全匹配的字符,如想匹配字符串"adfadgadgpythonadfadf"中的"python"
此时的"python"就是普通字符。

非打印字符

常用非打印字符:

符号含义
\n用于匹配一个换行符
\t用于匹配一个制表符

通用字符

即一个原子可以匹配一类字符:

符号含义
\w匹配任意一个字母、数字或下划线
\W匹配除字母、数字和下划线以外的任意一个字符
\d匹配任意一个十进制数
\D匹配除十进制以外的任意一个其他字符
\s匹配任意一个空白字符
\S匹配除空白字符以外的任意一个其他字符

原子表

原子表定义一组地位平等的原子,匹配时会选取该表中任意一个原子进行匹配,例如[xyz]py可以匹配到ypy

元字符

元字符即指正则表达式中的一些特殊含义的字符,如重复N次前面的字符等

符号含义
.匹配除换行符以外的任意字符
^匹配字符串的开始位置
$匹配字符串的结束位置
*匹配0次、1次或多次前面的原子
?匹配0次或一次前面的原子
+匹配一次或多次前面的原子
{n}前面的原子恰好出现n次
{n,}前面的原子至少出现n次
{n,m}前面的原子至少出现n次,至多出现m次
|模式选字符
( )模式单元符

模式修正

模式修正符即在不改变正则表达式的前提下改变正则表达式表达的含义,从而实现匹配结果的调整!

符号含义
I匹配时忽略大小写
M多行匹配
L做本地化识别匹配
U根据Unicode字符及解析字符
S让.匹配包括换行符,即用了该模式修正后,’.’就可以匹配任意字符

贪婪模式和懒惰模式

贪婪模式如p.*y就是尽可能多的匹配,懒惰模式如p.*?就是尽可能少的匹配,懒惰模式是就近匹配原则。更精准。而贪婪模式会一直匹配直到找到随后一个相应的字符才停止搜索

常用函数

函数含义
re.match()从源字符串的起始位置开始匹配
re.search()扫描整个字符串进行匹配
findall()根据正则表达式从源字符串中将匹配的结果全部找出,返回一个数组
re.sub()根据正则表达式实现替换某些字符串的功能
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值