这是我的代码
<?php
$str='salamsalam';
echo preg_match('/salam{1,1}/',$str);
?>
我在正则表达式中写了一次 min 和 max,但我不知道为什么它打印 1(true),
还有一个问题:
我只想接受 4 位数字(不多也不少),现在我的代码在这里:
<?php
$num=234567 ;
echo preg_match('/[0-9]{4,4}/',$num);
?>
这是不正确的,它也接受 234567 。
最佳答案
问题
您的正则表达式在这两种情况下都是正确的。
问题是,如果找到任何匹配,preg_match()
返回 true
--- 如果找到多个匹配,那么它仍然会打印 true .
解决方案
您可以在正则表达式中添加 ^
来匹配开头,添加 $
来匹配正则表达式中的结尾,这样它将匹配整个字符串(或非字符串)。
/^salam$/
/^[0-9]{4}$/
关于php - 带计数的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33721652/