一、快递单号识别术(基础匹配)
1. 数字猎人(\d
)
想象你有一叠快递单需要自动识别:
python
import re
快递单 = "【顺丰】单号:SF123456789 签收人:张先生"
单号 = re.search(r"SF\d+", 快递单).group()
print(f"✨ 捕获快递单号:{单号}") # 输出:SF123456789
这就像用SF
作为鱼饵,钓出后面跟着的一串数字鱼群(\d+
匹配多个数字)
2. 通配符妙用(.
)
处理不同快递公司的单号格式:
python
订单列表 = ["京东JD-20250505-123", "EMS:2025ABCDE"]
for 订单 in 订单列表:
匹配 = re.search(r"[A-Z]{2}.*\d{3}$", 订单)
if 匹配:
print(f"📦 有效订单格式:{匹配.group()}")
输出:
plain
📦 有效订单格式:JD-20250505-123
这里的.*
就像快递单号的"任意通行证",允许中间出现各种分隔符
二、咖啡订单解析系统(字符集与分组)
1. 口味定制([]
)
星巴克电子订单处理:
python
订单 = "大杯[焦糖玛奇朵] 温度:热 糖度:半糖"
口味 = re.search(r"\[(.*?)\]", 订单).group(1)
print(f"☕ 您点的口味是:{口味}") # 输出:焦糖玛奇朵
方括号[]
就像咖啡杯上的口味标签,(.*?)
精准提取杯中的内容
2. 订单分解(分组命名)
处理复杂订单:
python
订单 = "2杯冰美式(加浓)+3块提拉米苏 桌号:A3"
pattern = r"(?P<数量>\d+)杯(?P<饮品>.*?)(?=块|\+)|(?P<甜点>\d+)块(?P<品类>\w+)"
for 匹配 in re.finditer(pattern, 订单):
print(匹配.groupdict())
输出:
plain
{'数量': '2', '饮品': '冰美式(加浓)', '甜点': None, '品类': None}
{'数量': None, '饮品': None, '甜点': '3', '品类': '提拉米苏'}
这种命名分组就像给咖啡订单贴上电子标签,方便后续处理
三、智能家居日志分析(高级技巧)
1. 时间戳提取({}
次数限定)
分析空调运行日志:
python
日志 = """
[2025-05-05 08:30] 客厅空调开启
[2025-05-05 12:15] 温度设定26℃
"""
时间线 = re.findall(r"\d{4}-\d{2}-\d{2} \d{2}:\d{2}", 日志)
print(f"🕒 操作时间点:{时间线}") # 输出:['2025-05-05 08:30', '2025-05-05 12:15']
\d{4}
精确匹配年份,像时钟齿轮精准咬合
2. 状态监控(|
条件选择)
设备异常告警:
python
报警信息 = "警报!传感器03温度异常(当前:32℃/阈值:28℃)"
状态 = re.search(r"(\d+)℃/阈值:(\d+)℃", 报警信息)
print(f"🔥 温度超标:当前{状态.group(1)}℃,阈值{状态.group(2)}℃")
管道符|
就像电路保险丝,匹配多种可能的状态描述
四、数据清洗生产线(实用函数)
1. 消毒清洗(sub
)
处理用户留言:
python
留言 = "联系方式:138-1234-5678,微信:wxid_123"
安全留言 = re.sub(r"\d{3}-\d{4}-\d{4}|wxid_\w+", "[隐私保护]", 留言)
print(f"🔒 安全处理:{安全留言}")
输出:联系方式:[隐私保护],微信:[隐私保护]
sub
如同数据漂白剂,去除敏感信息
2. 智能分拣(split
)
分割商品描述:
python
商品描述 = "咖啡豆|巴西喜拉多 重量500g|深度烘焙"
信息块 = re.split(r"[\| ]+", 商品描述)
print(f"📦 分拣结果:{信息块}")
输出:['咖啡豆', '巴西喜拉多', '重量500g', '深度烘焙']
拆分符|
就像传送带上的分拣隔板
五、避坑指南(特殊场景)
1. 贪婪陷阱(?
解救)
截取短信验证码:
python
短信 = "验证码:9527(有效期5分钟)【美团】"
错误示范(贪婪模式)
错误码 = re.search(r"码:(.+)(", 短信).group(1) # 捕获"9527(有效期5分钟"
正确做法(非贪婪)
正确码 = re.search(r"码:(.*?)(", 短信).group(1)
print(f"✅ 正确验证码:{正确码}") # 输出:9527
?
如同刹车片,阻止正则表达式"暴走"
2. 转义密令(r
原始字符串)
匹配文件路径:
python
路径 = "C:\\Program Files\\Python\\脚本.py"
匹配路径 = re.search(r"\\Python\\", 路径).group()
print(f"🖥️ 找到安装路径:{匹配_path}") # 输出:\Python\
原始字符串r""
就像防弹衣,保护反斜杠不被误伤
正则表达式生存法则:
\d
是数字猎犬,\w
是文字侦探[]
像自助餐托盘,选择想要的内容()
如同快递包装盒,打包需要的内容?
是刹车踏板,防止匹配过度
试着用这些规则处理:外卖订单解析、智能家居日志分析、社交媒体数据清洗------让正则表达式成为你的数字瑞士军刀。当看到re.search()
时,不妨想象是在快递堆里找特定包裹;使用re.sub()
时,就像用消毒喷雾清理数据中的敏感信息。
❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️
我会出一系列Python非常容易理解的案例文章,希望对家人们有所帮助
关注不迷路,点赞走好运!!!