在4位数(\ d {4})搜索上非常简单的正则表达式误报

时间:2014-11-02 23:31:36

标签: php regex

我在这里遗漏了一些东西。

我正在尝试查看字符串是否包含4位数字。我之前做过这件事,但多年来都做不到,而且无法弄清楚我做错了什么。

$ stuff是来自mySQL数据库的字符串。 (目前来自一个表格,所以当然应该工作。)

$stuff=$_POST['stuff'];
$regex="/\d{4}/";
$integerStuff=intval($stuff);//in case somehow seeing as  n on-digit!!!
if (preg_match($regex, $integerStuff)) {echo "  Found 4 dig";}

我想如果preg_match没有找到它返回false的模式但是123不匹配,12345等就行了。

我认为{4}恰好意味着4次出现。

我知道这个愚蠢的问题,但多年来一直坚持这个问题。

1 个答案:

答案 0 :(得分:2)

就像你说的那样,

$regex="/\d{4}/";

正好查找4位数字。但是之前或之后什么都不重要。你想要包括" line-start" ^和" line-end" $:

$regex="/^\d{4}$/";