贝利信息

Python正则表达式教程_字符串匹配与替换实战

日期:2026-01-06 00:00 / 作者:冰川箭仙
Python正则表达式重在实践应用:需掌握基础匹配(数字、邮箱、中文)、贪婪/懒惰匹配、大小写控制、分组捕获(含命名与非捕获)、替换技巧(含函数替换)及调试避坑(如raw字符串、match/search区别、编译优化)。

Python正则表达式不是“学了就会”,而是“用对才懂”。掌握核心语法、理解匹配逻辑、避开常见坑,比背熟所有元字符更重要。下面从实际需求出发,讲清楚怎么写、怎么调、怎么修。

基础匹配:从找数字、邮箱到中文

正则本质是“描述文本模式的规则”。比如找连续3位数字:\d{3};找邮箱:[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,};匹配中文(Unicode):[\u4e00-\u9fff]+

分组与捕获:提取关键信息的关键

用圆括号()定义分组,配合re.search()re.findall()提取结构化内容。比如解析日志行:"[2025-05-12 14:23:08] ERROR: timeout"

pattern = r"\[(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2})\] (\w+): (.*)"

替换操作:不只是简单替换,还能动态处理

re.sub()支持字符串、函数甚至lambda作为替换内容。例如把日期格式2025/05/12转为2025-05-12

re.sub(r"(\d{4})/(\d{2})/(\d{2})", r"\1-\2-\3", text)

调试与避坑:为什么我的正则不生效?

常见问题往往出在细节: