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

使用正则表达式匹配5X000Y000格式9位数字,要求X≠Y

正则表达式修改方案:匹配5X000Y000且X≠Y的9位数字

核心正则表达式

^5(\d)000(?!\1)\d000$

规则解释

  • ^5:限定字符串以数字5开头
  • (\d):捕获X对应的单个数字,存入分组1
  • 000:匹配中间固定的三个0
  • (?!\1):负向先行断言,确保后续的Y数字和分组1捕获的X不相等
  • \d000:匹配Y数字及后面固定的三个0
  • $:限定字符串结尾,保证是严格的9位数字

修改后的代码示例

import re

# 符合匹配条件的案例
valid_num = "530004000"
# 不符合匹配条件的案例(X和Y相同)
invalid_num = "530003000"

# 执行替换操作
valid_result = re.sub(r'^5(\d)000(?!\1)\d000$', "Bronze", valid_num)
invalid_result = re.sub(r'^5(\d)000(?!\1)\d000$', "Bronze", invalid_num)

print(valid_result)   # 输出:Bronze
print(invalid_result) # 输出:530003000(未匹配,无替换)

额外:仅判断匹配状态的写法

如果不需要替换,只需要验证是否符合格式,可以用fullmatch方法:

print(re.fullmatch(r'^5(\d)000(?!\1)\d000$', valid_num) is not None)  # 输出:True
print(re.fullmatch(r'^5(\d)000(?!\1)\d000$', invalid_num) is not None)  # 输出:False

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 13:01:06