Python教学:正则表达式的寻找、匹配、替换、删除 四种模式案例-由Deepseek产生

以下使用 Python 的 re 模块演示正则表达式的寻找、匹配、替换、删除四种经典模式。每个案例包含代码和简要说明。

python 复制代码
import re

# ------------------------------------------------------------
# 1. 寻找 (search / findall) -- 在文本中查找所有匹配的内容
# ------------------------------------------------------------
text = "我的邮箱是 zhangsan@example.com,备用邮箱是 lisi@test.cn。"
# 经典案例:查找所有邮箱地址
pattern = r'\b[\w.-]+@[\w.-]+\.\w+\b'
emails = re.findall(pattern, text)
print("寻找结果:", emails)  # ['zhangsan@example.com', 'lisi@test.cn']

# ------------------------------------------------------------
# 2. 匹配 (match / fullmatch) -- 判断整个字符串是否符合某个格式
# ------------------------------------------------------------
phone = "138-1234-5678"
# 经典案例:匹配中国大陆手机号(简单版,忽略区号)
pattern = r'^1[3-9]\d-\d{4}-\d{4}$'
if re.fullmatch(pattern, phone):   # fullmatch 要求从头到尾完全匹配
    print("匹配成功:这是一个有效的手机号格式")
else:
    print("匹配失败")

# 注意:match() 是从开头匹配,fullmatch() 要求整个字符串都匹配,更常用

# ------------------------------------------------------------
# 3. 替换 (sub) -- 将匹配的部分替换成其他内容
# ------------------------------------------------------------
sentence = "我日复一日地写代码,日复一日地调试。"
# 经典案例:替换敏感词或重复词组,例如将"日复一日"替换为"勤奋地"
pattern = r'日复一日'
new_sentence = re.sub(pattern, '勤奋地', sentence)
print("替换结果:", new_sentence)  # 我勤奋地写代码,勤奋地调试。

# 更实用的例子:将日期格式从 YYYY-MM-DD 改为 DD/MM/YYYY
date_str = "2025-03-15, 2026-05-13"
pattern_date = r'(\d{4})-(\d{2})-(\d{2})'
replaced = re.sub(pattern_date, r'\3/\2/\1', date_str)
print("日期格式转换:", replaced)  # 15/03/2025, 13/05/2026

# ------------------------------------------------------------
# 4. 删除 -- 本质是替换为空字符串
# ------------------------------------------------------------
dirty_text = "Hello,   world!   This   has   extra   spaces."
# 经典案例:删除多余空格(多个空格变成一个空格,或直接删除)
pattern_space = r'\s+'  # 匹配一个或多个空白字符
cleaned = re.sub(pattern_space, ' ', dirty_text).strip()
print("删除多余空格后:", cleaned)  # Hello, world! This has extra spaces.

# 另一个经典案例:删除 HTML 标签
html = "<p>欢迎来到<b>正则表达式</b>世界!</p>"
no_tags = re.sub(r'<[^>]+>', '', html)
print("删除HTML标签后:", no_tags)  # 欢迎来到正则表达式世界!

四种模式的核心函数总结

模式 核心函数 作用
寻找 re.findall() 返回所有非重叠匹配的列表
匹配 re.fullmatch() 判断整个字符串是否匹配模式
替换 re.sub() 将匹配部分替换为指定字符串
删除 re.sub(pattern, '') 将匹配部分替换为空字符串实现删除

这些案例覆盖了日常处理文本时最常用的正则表达式操作。

相关推荐
小小测试开发36 分钟前
安装 Python 3.10+
开发语言·人工智能·python
梦想不只是梦与想1 小时前
Python 中的装饰器
python·装饰器
我叫唧唧波2 小时前
Python+AI 全栈学习笔记
人工智能·python·学习
AAA大运重卡何师傅(专跑国道)2 小时前
【无标题】
开发语言·c#
copyer_xyf2 小时前
Python 异常处理
前端·后端·python
XBodhi.3 小时前
Visual Studio C++ 语法错误: 缺少“;”(在“return”的前面)
开发语言·c++·visual studio
麻雀飞吧3 小时前
期货多合约策略目标持仓怎么更新才不乱
python·区块链
Cthy_hy3 小时前
拓扑排序超详解:原理 + Kahn 贪心算法
python·算法·贪心算法
LSssT.3 小时前
【01】Python 机器学习
开发语言·python
为爱停留3 小时前
给智能体装上「刹车」:中断(Interrupts)与人工审批全解析
python