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”

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

Find JSON Path Online
Find JSON Path Online

Easily find JSON paths within JSON objects using our intuitive Json Path Finder

Find JSON Path Online 193
查看详情 Find JSON Path Online

立即学习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号