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

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

相关推荐
空白13 分钟前
Power BI +VBA 【数据分析】
python
科技苑6 小时前
Python简单网络爬虫教程
爬虫·python
Patrick在香港9 小时前
Claude Prompt 香港场景:公文里「今日」落在 6 个日历日上,「翌日」锚错了 5 天
python·自然语言处理·正则表达式·claude·数据清洗
YsyaaabB9 小时前
Python 数值分析
python
阿洛学长10 小时前
计算机二级 Python 基本操作题(15 分)真题笔记(0101 ~ 1903 全套)
python·pycharm
君顾110 小时前
上海24小时自助健身房系统开发实战指南:从架构设计到落地部署
java·开发语言·健身房
weixin1997010801610 小时前
[特殊字符]️《二手ERP对接电商平台的总体方案:统一数据模型 + 事件驱动 + 灰度上线6原则》(附Python源码)
大数据·python
香菜TTT10 小时前
大模型上下文协议(MCP):AI 应用的“USB-C”接口技术
开发语言·人工智能·经验分享
aramae10 小时前
模拟实现strlen()函数 (C语言)
c语言·开发语言·后端
滚雪球~10 小时前
量化交易 防止Windows电脑自动更新并重启
python·量化