regex 如何在正则表达式中设置最大长度?

k75qkfdt  于 2023-03-04  发布在  其他
关注(0)|答案(3)|浏览(157)

我已经创建了这个工作正则表达式下面,这旨在接受电话号码只 * ex.09338195838 *。

^(09)[0-9]{9}

然而,我不知道如何设置一个最大长度,将只接受11位。我已经到了其他类似的问题,如q1,但没有真正帮助,并尝试了下面的代码,但它仍然接受,即使它超过11位。

((09)[0-9]{9}){11}

详细结构如下:
1.必须以09开头
1.必须全部为数字
1.必须为11位数字
有人知道怎么做吗?

ecr0jaav

ecr0jaav1#

^09[0-9]{9}$
$符号表示“字符串必须结束,后面没有其他字符”。

iovurdzv

iovurdzv2#

您可以设置单词边界。
((09)[0-9]{9})\b
测试:https://regexr.com/51c40
如果你想让它更有弹性,not only 11 digit
可以使用((09)\d{0,9})\b
{0,9}设置最小和最大长度,现在它接受最大11位数,以09开头,最小2位数为09。

eyh26e7m

eyh26e7m3#

这是上述问题的完美解决方案:^0 - 9 [0-9]{9}$
我在解释你的想法。

  • 我认为你想用最大长度11这样 Package 整个正则表达式:^(0 - 9 [0-9]){11}$它将不工作,因为当你设置这个{n},它重复前一项正好n次。当你 Package 整个项,所以它会找到匹配11次,从0 - 9开始后的任何数字(0-9)。例如:(098093095...)。所以你设置多少时间,它会发现从开始到结束完全 Package 集。

请检查链接,我已经设置了一个演示示例。https://regex101.com/r/JU8JzV/1

相关问题