使用正则表达式匹配电话号码 5X000Y000

3

我正在尝试匹配由9个数字组成的5X000Y000模式。

我尝试过的方法

我写了以下正则表达式:

B_5 = 530004000

B_5_pattern = re.sub(r'^5(\d(000))(\d(000))', "Bronze", str(B_5))

print(B_5_pattern)

我想要实现的目标

我想要更新我的正则表达式,添加一个条件:X000不能与Y000相同。(X!=Y)

所以这个正则表达式将匹配530004000,但是不会匹配530003000

2个回答

5

您可以使用以下方法:

B_5 = "530004000"
if re.search(r'^5(\d)0{3}(?!\1)\d0{3}$', B_5):
    print("MATCH")

5
您可以使用此正则表达式:
^5(\d)0{3}(?!\1)\d0{3}$

正则表达式演示

正则表达式分解:

  • ^:起始位置
  • 5:匹配数字5
  • (\d):匹配并捕获一位数字到第1组中
  • 0{3}:匹配3个零
  • (?!\1):确保下一个数字与第1组中的数字不同
  • \d:匹配一位数字
  • 0{3}:匹配3个零
  • $:结束位置

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接