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

如何用Python正则表达式匹配AA、BB类连续相同大写双字母

解决Python中匹配两个连续相同大写字母的正则问题

没问题,我来帮你搞定这个需求!你需要的是仅匹配由两个完全相同的大写字母组成的字符串,排除那些长度不对、字母不同或者包含小写的情况——之前的^[A-Z]{2}$确实不行,因为它会匹配任意两个大写字母,不管是否重复。

正确的正则表达式

你可以直接用这个正则:^([A-Z])\1$

表达式解析

  • ^ 和 $:锚定字符串的开头和结尾,确保我们匹配的是整个字符串,不会误判像DDD这种包含符合条件子串但整体长度超标的情况
  • ([A-Z]):捕获一个大写字母到分组1中
  • \1:引用分组1里捕获到的字符,保证第二个字符和第一个完全一致

Python代码示例

下面是Python 3.x的测试代码,用re.fullmatch方法来验证更直观:

import re

# 定义匹配模式
match_pattern = r'^([A-Z])\1$'

# 测试有效字符串
valid_examples = ["AA", "ZZ", "DD", "EE"]
print("有效示例测试结果:")
for s in valid_examples:
    if re.fullmatch(match_pattern, s):
        print(f"✅ '{s}' 匹配成功")
    else:
        print(f"❌ '{s}' 匹配失败")

# 测试无效字符串
invalid_examples = ["AB", "DDD", "aA", "Aa", "Cd", "DE"]
print("\n无效示例测试结果:")
for s in invalid_examples:
    if re.fullmatch(match_pattern, s):
        print(f"✅ '{s}' 匹配成功")
    else:
        print(f"❌ '{s}' 匹配失败")

结果说明

运行代码后你会看到:

  • 所有有效示例(AA、ZZ、DD、EE)都会匹配成功
  • 无效示例全部匹配失败:
    • AB/DE/Cd:两个字母不相同,\1无法匹配对应字符
    • DDD:长度为3,被^和$的长度限制排除
    • aA/Aa:包含小写字母,[A-Z]仅匹配大写字符,不满足条件

内容的提问来源于stack exchange,提问作者Sang-il Ahn

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:12:24