preg_match确切的开始和结束与3位数字完全匹配不起作用?

时间:2014-03-21 16:11:36

标签: php function if-statement numbers preg-match

非常基本::

完全匹配的任何3位数字。

看起来它是真的,但它返回错误。

为什么这不是真的?

<?php

if ( preg_match( '#\^d{3}$#', '123' ) ) {
    echo ':)';
    } else {
    echo ':(';
}

?>

2 个答案:

答案 0 :(得分:2)

你的正则表达式:

\^d{3}$

含义:

  • \^ - 字面匹配字符^
  • d{3} - 字面匹配字符d(正好3次)
  • $ - 在字符串末尾断言位置

<强>可视化:

Visualization

简单英语:它匹配一个看起来像"^ddd"的字符串。

您可能需要什么:

\d{3}

答案 1 :(得分:0)

如果你想检查任何3位数,你可以使用它:

<?php
    if ( preg_match( '/^\d{3}$/', '123' ) ) {
      echo ':)';
    } else {
      echo ':(';
    }
?>
这回归幸福的脸。