Python正则表达式实战案例_文本匹配与替换技巧【教程】

冷炫風刃
发布: 2025-12-18 18:49:02
原创
716人浏览过
Python正则表达式重在解决实际文本问题:1.手机号提取需兼顾格式与防误匹配;2.日志清洗用re.sub去除时间戳和IP;3.文件重命名靠捕获组调换顺序;4.邮箱识别需边界控制并生成mailto链接。

python正则表达式实战案例_文本匹配与替换技巧【教程】

Python正则表达式不是背语法,而是解决实际文本问题的工具。掌握几个典型场景的写法,比记满页符号更有用。

提取手机号:兼顾常见格式和防误匹配

国内手机号通常为11位,以1开头,第二位常见3-9;但要注意避开“110”“119”等特殊号段,也别把带分隔符的字符串(如138-1234-5678)错当有效号码。

  • 基础匹配:r'1[3-9]\d{9}' —— 精准抓纯数字11位手机号
  • 支持空格/短横线:r'1[3-9]\d{2}[-\s]?\d{4}[-\s]?\d{4}'注意?表示前面的分隔符可有可无
  • 防止匹配到更长数字中的子串:用 \b(词边界)包住,如 r'\b1[3-9]\d{9}\b'

清洗日志行:去掉时间戳和IP,保留核心信息

服务器日志常形如 [2024-03-15 14:22:08] 192.168.1.100 "GET /api/user HTTP/1.1" 200,想只留请求路径和状态码

  • 先用 re.sub() 去掉开头时间:re.sub(r'^\[.*?\]\s+', '', line)
  • 再删IP和引号包裹的请求行:re.sub(r'\d+\.\d+\.\d+\.\d+\s+"[^"]*"\s+', '', line)
  • 组合起来更简洁:re.sub(r'^\[.*?\]\s+\d+\.\d+\.\d+\.\d+\s+"[^"]*"\s+', '', line)

批量重命名文件:从“report_20240315_v2.txt”改成“2024-03-15-report-v2.txt”

关键在捕获年月日并插入分隔符,同时调换字段顺序。

代码小浣熊
代码小浣熊

代码小浣熊是基于商汤大语言模型的软件智能研发助手,覆盖软件需求分析、架构设计、代码编写、软件测试等环节

代码小浣熊 429
查看详情 代码小浣熊

立即学习Python免费学习笔记(深入)”;

  • 匹配原名结构:r'report_(\d{4})(\d{2})(\d{2})_v(\d+)\.txt',括号用于分组捕获
  • 替换为:r'\1-\2-\3-report-v\4.txt',\1 \2 \3 \4 对应四个捕获组
  • 完整示例:re.sub(r'report_(\d{4})(\d{2})(\d{2})_v(\d+)\.txt', r'\1-\2-\3-report-v\4.txt', filename)

识别并高亮邮箱:在HTML中给邮箱加mailto链接

不是简单找@,要确保前后是合理字符边界,避免匹配到“abc@def@ghi”或“email@test.”这种无效串。

  • 推荐邮箱模式:r'\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b'
  • 配合 re.sub() 生成链接:re.sub(r'(\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b)', r'<a href="https://www.php.cn/link/8b4992492aec60aac6ba3fd5ee5d93ec">\1</a>', text)
  • 注意:真实项目建议用 email-validator 库校验,正则仅作初步筛选

以上就是Python正则表达式实战案例_文本匹配与替换技巧【教程】的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号