在我使用正则表达式来[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}
未按预期运行,因为方括号[ ]
使用不正确。正则表达式中的方括号定义一个字符类,这意味着它匹配括号内指定的字符集中的任何单个字符。要更正正则表达式,您应该使用圆括号
( )
而不是方括号来对前两个字符的选项进行分组。这是更新后的正则表达式:请参阅: https://regexr.com/7vdhm
您的陈述:
这里不需要 {2},就像您在 [31|33|55|66|77] 组中搜索其中一个数字出现两次一样。还可以使用 () 而不是 [] 来创建捕获组。整个语句周围的 () 创建另一个捕获组,为您提供整个数字。
所以改用: