You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pandas str.extract提取PIN#字段时含字母数字段匹配不全如何解决

问题根源

原有正则的后续片段匹配规则仅支持纯数字内容(\d+),因此0020A、0D14这类夹带字母的编码段无法被识别,匹配会提前终止,导致内容缺失。

修正方案

观察样本规律:PIN编码的所有分段均为「数字+大写字母」混合或纯数字组成,编码结束的标志是后续出现纯字母的字段标识(如Rmrk、ABC)或到达行尾。基于这个规则调整正则即可:

df['PIN'] = df['description'].str.extract(
    r'PIN#\s+([A-Z0-9\s]+?)(?=\s+[A-Za-z]+\b|$)'
)[0].str.strip()
  • 正则核心逻辑:匹配PIN#后所有由大写字母、数字、空格组成的内容,直到碰到第一个纯字母单词或行尾时停止
  • 末尾的str.strip()用于去除匹配结果首尾可能残留的空格
提取结果

执行代码后得到的输出完全符合预期:

0    DP73770000 0156 312
1      OP55000034 0020A
2      DP34500001 0D14
3      GP20000006 0029
Name: PIN, dtype: object

内容的提问来源于stack exchange,提问作者MHA

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 21:54:19