正则表达式,用于匹配以特定数字开头的10位字符串

2024-06-28 14:53:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我用的是Pyrlike方法。与以下格式匹配的正则表达式是什么?字符串应始终具有10位数字,以下列之一开头:

111xxxxxxx
115xxxxxxx
222xxxxxxx
995xxxxxxx
9991xxxxxx
9992xxxxxx
99999xxxxx

字符串也可以以零开头,在这种情况下,它只需要检查总共有10位数字:

0000xxxxxx 
000000xxxx 
00000000xx 

我尝试了^(111|115|222|995)\d{7}$,它只适用于列表中的一些格式


Tags: 方法字符串列表格式情况数字pyrlike
1条回答
网友
1楼 · 发布于 2024-06-28 14:53:51

你可以用

^((111|115|222|995)\d{7}|999[129]\d{6}|0\d{9})$

regex demoregex graph

enter image description here

正则表达式详细信息

  • ^-字符串的开头
  • (-组的开始:
    • (111|115|222|995)
    • \d{7}-七位数字
    • |-或
      • 999-999字符串
      • [129]-129
      • \d{6}-六位数字
    • |-或
      • 0\d{9}-0然后是任意九位数字
  • )-组的结尾
  • $-字符串的结尾

替代解决方案:

如果在开始时使用正向前瞻限制字符串长度,则正则表达式将变得更易于维护:

^(?=\d{10}$)(111|115|222|995|999[129]|0)\d+$

this regex demo。因此,您可以在模式开始时控制总长度,然后可以在使用模式部分中自由添加任何其他限制

详细信息

  • ^-字符串的开头
  • (?=\d{10}$)-整个字符串只能是一个十位数的字符串
  • (111|115|222|995|999[129]|0)-所有允许的前缀:1111152229959991999299990
  • \d+-1+位
  • $-字符串的结尾

相关问题 更多 >