Python正则替换终极指南:用re.sub玩转字符串魔法
一、为什么re.sub是文本处理的瑞士军刀?
在Python的re
模块中,re.sub()
的周下载量突破5800万次(2025年PyPI数据),它实现了:
- 📍 模式匹配替换
- 📍 动态内容生成
- 📍 批量文本清洗
- 📍 结构化数据转换
二、基础篇:5分钟掌握核心用法
1. 函数原型剖析
re.sub(pattern, repl, string, count=0, flags=0)
pattern
:正则表达式模式(字符串或编译后的模式对象)repl
:替换内容(字符串或回调函数)string
:原始输入字符串count
:最大替换次数(0表示全部替换)flags
:匹配模式(如忽略大小写re.IGNORECASE
)
2. 基础替换示例
import re
# 替换所有数字为*
text = "订单号:AB2025 金额:1500元"
result = re.sub(r"\d", "*", text)
print(result) # 订单号:AB**** 金额:****元
# 限制替换次数
text = "1-2-3-4-5"
result = re.sub(r"-", ":", text, count=2)
print(result) # 1:2:3-4-5
以下案例均要添加 import re
三、进阶篇:解锁三大高阶技巧
1. 分组捕获与反向引用
\1 代表匹配的第1项,\2代表匹配的第2项,以此类推
# 重组日期格式(YYYY/MM/DD → DD-MM-YYYY)
text = "2025/02/20 → 2026/03/21"
result = re.sub(r"(\d{4})/(\d{2})/(\d{2})"