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

寻求识别含大写字母的三位数字编码转换错误的正则表达式方案

三位编码错误识别解决方案

问题描述

我有一批三位数字编码,比如001、002、003,但存在转换错误,比如Q04(正确应为004),需要用正则表达式识别这类错误。

需求要点

  • 目标是空格分隔的三位字符词,且至少包含一个大写字母
  • 不能匹配004、014、114这类正确的纯数字编码
  • 编码最大值为200
  • 要在大量文本文件中识别这类错误

补充测试场景

测试字符串中仅003是正确编码,00Q、0Q2等为错误项,需识别:

text = '00Q ALLAN, Wilham Ross 0Q2 ALLARDYCE, Margaret Isabel 003 ALLARDYCE, Mervyn George Q04 ANKER. Delia Roswyn QQ5 ANKER, Doreen Alison'

最终解决方案

以下是实现错误识别的Python代码,结合自定义正则表达式:

# matchTestSub.py

import re

def isValidInteger(string):
    try:
        int(string)  # 尝试将字符串转为整数
        return True  # 转换成功,是有效整数
    except ValueError:
        return False  # 转换失败,不是有效整数

text = '00Q ALLAN, Wilham Ross 0Q2 ALLARDYCE, Margaret Isabel 003 ALLARDYCE, Mervyn George Q04 ANKER. Delia Roswyn QQ5 ANKER, Doreen Alison'        

pattern1 = r'\b[A-Z0-9]{3}\b(?![A-Z]+)'
match = re.findall(pattern1,text)
if match:
    for x in match:
        print(x, isValidInteger(x))

正则设计思路

  • 使用负向前瞻(?![A-Z]+)排除姓名等全大写的三位字符串匹配
  • 匹配由数字和/或大写字母组成的三位字符词,后续通过isValidInteger函数过滤掉纯数字的正确编码

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 23:11:35