首页 > 解决方案 > preg_match 返回 1 虽然它不应该

问题描述

echo preg_match("/090\d{5}/","090327112");
echo preg_match("/090\d{5}/","0903271122");

这些回声中的每一个都是 1,我不明白为什么,它匹配 090 但它后面有超过 5 个数字......

也使用它https://regex101.com/它说:

在此处输入图像描述

标签: phpregex

解决方案


您在模式中缺少字符串的开头和字符串锚点的^结尾:$

echo preg_match("/^090\d{5}$/","090327112");

这将使它只匹配以开头090然后在字符串结尾之前有任何 5 位数字的字符串。

正则表达式101演示


推荐阅读