Python保姆级教程(六):正则表达式

目录

前言

一、正则表达式基础

1. 什么是正则表达式?

2. 正则表达式的基本语法

(1)普通字符

(2)元字符(特殊符号)

(3)预定义字符集

二、Python re 模块核心函数

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

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

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

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

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

三、分组与引用

1. 提取分组内容

2. 非捕获分组

3. 反向引用

四、匹配模式(flags 参数)

五、实战案例

1. 验证手机号格式

2. 提取 HTML 标签中的内容

3. 日志分析:统计不同 IP 的访问次数

结语


前言

在处理文本数据时,我们经常需要从字符串中提取特定格式的信息(如邮箱、手机号)、验证输入格式(如身份证号)或批量替换文本内容。正则表达式(Regular Expression)是解决这类问题的强大工具,它通过一种简洁的语法规则来描述字符串的模式,实现高效的文本匹配与处理。

Python 内置的 re 模块提供了对正则表达式的全面支持,本教程将从正则表达式的基本语法讲起,逐步介绍 re 模块的核心函数及实际应用场景,搭配大量案例帮助零基础学员快速掌握这一实用技能,让文本处理效率大幅提升。

一、正则表达式基础

1. 什么是正则表达式?

正则表达式是由一系列字符和特殊符号组成的模式字符串,用于描述字符串的特定规则。例如,\d{11} 可以匹配任意 11 位数字(如手机号),[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+\.[a-zA-Z0-9_-]+ 可以匹配邮箱地址。

正则表达式的核心价值在于:用简洁的模式实现复杂的文本匹配,避免编写冗长的字符串判断逻辑。

2. 正则表达式的基本语法

(1)普通字符

大多数字符(如字母、数字、标点)在正则表达式中代表自身,称为普通字符。例如,模式 abc 只能匹配字符串 "abc"

(2)元字符(特殊符号)

元字符是具有特殊含义的符号,是正则表达式的核心,常用元字符如下:

元字符 含义 示例
. 匹配任意单个字符(除换行符 \n a.b 匹配 aabacba1b 等
^ 匹配字符串的开头 ^abc 匹配以 abc 开头的字符串(如 abc123
$ 匹配字符串的结尾 xyz$ 匹配以 xyz 结尾的字符串(如 123xyz
* 匹配前面的字符或子模式 0 次或多次 ab*c 匹配 acabcabbc 等
+ 匹配前面的字符或子模式 1 次或多次 ab+c 匹配 abcabbc 等(不匹配 ac
? 匹配前面的字符或子模式 0 次或 1 次 ab?c 匹配 acabc(不匹配 abbc
{n} 匹配前面的字符或子模式恰好 n 次 a{3} 匹配 aaa
{n,} 匹配前面的字符或子模式至少 n 次 a{2,} 匹配 aaaaa 等
{n,m} 匹配前面的字符或子模式 n 到 m 次 a{1,3} 匹配 aaaaaa
[] 字符集,匹配括号内的任意一个字符 [abc] 匹配 ab 或 c[0-9] 匹配任意数字
[^] 否定字符集,匹配不在括号内的任意字符 [^0-9] 匹配非数字字符
| 逻辑或,匹配左边或右边的模式 ab|cd 匹配 ab 或 cd
() 分组,将括号内的内容视为一个整体 (ab)+ 匹配 ababab 等
\ 转义字符,使特殊字符变为普通字符 \. 匹配 .(否则 . 代表任意字符)
(3)预定义字符集
<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小李也疯狂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值