之前我使用正则表达式
[4569]{1}[0-9]{7}
来检查数字是否以4569开头,其余7位数字是否为数字。
现在,我想更新为如下。
前 2 个字符为 31,33,55,66,77,其余 6 位数字为数字。
所以我更新到
[31|33|55|66|77]{2}[0-9]{6}
,但它不起作用。
任何人都可以指出我在这里缺少什么吗?
即使我尝试了
(31|33|55|66|77){2}[0-9]{6}
我尝试了下面的字符串,其中
[31|33|55|66|77]{2}[0-9]{6}
都通过了两个字符串。
51123456
55123456
您提供的正则表达式
[31|33|55|66|77]{2}[0-9]{6}
未按预期运行,因为方括号[ ]
使用不正确。正则表达式中的方括号定义一个字符类,这意味着它匹配括号内指定的字符集中的任何单个字符。
要更正正则表达式,您应该使用括号
( )
而不是方括号来对前两个字符的选项进行分组。这是更新后的正则表达式:
(31|33|55|66|77)[0-9]{6}
您的陈述:
[31|33|55|66|77]{2}[0-9]{6}
这里不需要 {2},就像您搜索 [31|33|55|66|77] 组中的数字之一出现两次一样。还可以使用 () 而不是 [] 来创建捕获组。
所以使用:
(31|33|55|66|77)[0-9]{6}