批次提取正则怎么写
批次提取正则写法示例:
通用规则(提取8位数字,如20250301):
df['批次'] = df['商品名'].str.extract(r'(d{8})')
生鲜商品常见格式及正则:
| 格式示例 | 正则 | 提取结果 |
|---|---|---|
三文鱼_20250301 |
r'_(d{8})' |
20250301 |
20250301-冰鲜虾仁 |
r'^(d{8})' |
20250301 |
虾仁_B20250301_10kg |
r'[A-Z](d{8})' |
20250301 |
2025-03-01-三文鱼 |
r'(d{4}-d{2}-d{2})' |
2025-03-01 |
最稳健写法(提取所有连续数字中最长的8位以上序列):
df['批次'] = df['商品名'].str.findall(r'(d{8,})').str[-1] # 取最后一段数字
注意:若批次号带字母(如B20250301),需排除前置字母:
df['批次'] = df['商品名'].str.extract(r'[A-Z]?(d{8})')