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

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

相关推荐
Zfox_1 小时前
【LangGraph】持久化(Persistence)
开发语言·人工智能·redis·langchain·ai编程·langgraph
blxr_1 小时前
MySql锁机制
java·开发语言
2301_779622411 小时前
Golang如何解析嵌套JSON_Golang嵌套JSON解析教程【简明】
jvm·数据库·python
m0_748554811 小时前
C#怎么使用CancellationToken C#如何用取消令牌优雅地取消异步任务和长时间操作【进阶】
jvm·数据库·python
m0_624578591 小时前
PHP怎么实现X-XSS-Protection头_PHP浏览器XSS过滤【操作】
jvm·数据库·python
计算机安禾1 小时前
【c++面向对象编程】第13篇:继承(三):同名隐藏与作用域覆盖
开发语言·c++·iphone
ch.ju2 小时前
Java Programming Chapter 3——Dynamic acquisition of array
java·开发语言
TechWayfarer2 小时前
AI的幻觉谁来买单?智能体时代的数据溯源与鉴权
开发语言·python·安全·ai
2301_779622412 小时前
如何自动计算SQL税费信息_利用触发器实时扣算税额
jvm·数据库·python