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, '') 将匹配部分替换为空字符串实现删除

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

相关推荐
Scott9999HH8 小时前
【IIoT流量实战】蒸汽管道阀门全关却仍有流量?用 Python 实现涡街信号 FFT 频谱分析与温压全补偿积算网关,深度拆解靠谱的涡街流量计厂家硬核技术标准
开发语言·python
码智社9 小时前
AES加密原理详解及Java实现加解密实战
java·开发语言
AI云海9 小时前
python 列表、元组、集合和字典
开发语言·python
二十雨辰9 小时前
[爬虫]-Urllib
爬虫·python
萧瑟余晖10 小时前
JDK 26 新特性详解
java·开发语言
马优晨10 小时前
Freemarker 完整讲解(后端 Java 模板引擎)
java·开发语言·freemarker·freemarker 完整讲解·freemarker模板引擎
玉鸯11 小时前
Agent Hook:在概率推理之上,为 Agent 叠加确定性控制
python·langchain·agent
weixin_4462608512 小时前
HACO:面向动态部署环境的对冲式智能计算可靠多智能体调度框架
后端·python·flask
我的xiaodoujiao12 小时前
API 接口自动化测试详细图文教程学习系列32--Allure测试报告2
python·学习·测试工具·pytest