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

如何用正则表达式匹配单个大写字母加四位数字的特定编码?

正则匹配方案

你原来的正则存在两处逻辑错误:

  1. [A-Z]+ 中的+表示匹配1个及以上大写字母,不符合「单个大写字母」的要求
  2. [0-9999]* 写法错误:字符集[]内的0-9999等价于0-9,*表示匹配0个及以上数字,无法精确限制为4位数字

正确写法

直接使用以下正则即可一次性匹配所有符合规则的编码:

re.findall(r'\b[A-Z]\d{4}\b', test_data6)

规则解释

  • \b:单词边界,避免匹配到长字符串内部的片段(如AR0001里的R0001、R00012里的R0001)
  • [A-Z]:精确匹配1个大写英文字母
  • \d{4}:精确匹配4位数字

额外扩展(去重)

如果需要提取唯一编码,可以直接对结果去重:

  • 不需要保留出现顺序:
    unique_codes = list(set(re.findall(r'\b[A-Z]\d{4}\b', test_data6)))
    
  • 需要保留首次出现的顺序:
    unique_codes = list(dict.fromkeys(re.findall(r'\b[A-Z]\d{4}\b', test_data6)))
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 09:06:03