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

如何用Python re模块匹配含至少两个字母和两个数字的序列

修改正则以匹配含至少两个大写字母和两个数字的序列

你需要在原正则的基础上添加两个正向预查,分别确保序列中包含至少两个大写字母和至少两个数字。最终的正则表达式如下:

(?=(?:\d*[A-Z]){2})(?=(?:[A-Z]*\d){2})[A-Z0-9]{4,}

正则拆解

  • (?=(?:\d*[A-Z]){2}):正向预查,验证序列中至少存在两个大写字母。\d*匹配任意数量的数字,[A-Z]匹配单个大写字母,{2}要求这个组合至少出现两次,确保至少两个字母。
  • (?=(?:[A-Z]*\d){2}):另一个正向预查,验证序列中至少存在两个数字。[A-Z]*匹配任意数量的大写字母,\d匹配单个数字,{2}要求这个组合至少出现两次,确保至少两个数字。
  • [A-Z0-9]{4,}:匹配仅由大写字母和数字组成、长度不小于4的序列(两个字母+两个数字刚好满足最小长度要求)。

Python 使用示例

import re

text = "N03FZ467 other text N03671"
pattern = r'(?=(?:\d*[A-Z]){2})(?=(?:[A-Z]*\d){2})[A-Z0-9]{4,}'
matches = re.findall(pattern, text)
print(matches)  # 输出: ['N03FZ467']

这个正则会精准匹配符合要求的序列:N03FZ467包含3个大写字母和4个数字,满足条件;而N03671只有1个大写字母,会被排除。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 22:30:53