【问题标题】:preg_match exact start and end with 3 digits number as exact match is not working?preg_match 完全以 3 位数字开头和结尾,因为完全匹配不起作用?
【发布时间】:2014-03-21 16:11:36
【问题描述】:

非常基本的::

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

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

为什么这不是真的?

<?php

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

?>

【问题讨论】:

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


    【解决方案1】:

    你的正则表达式:

    \^d{3}$
    

    含义:

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

    可视化:

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

    您可能需要的东西:

    \d{3}
    

    【讨论】:

      【解决方案2】:

      如果您想检查任何 3 位数字,请使用:

      <?php
          if ( preg_match( '/^\d{3}$/', '123' ) ) {
            echo ':)';
          } else {
            echo ':(';
          }
      ?>
      

      这会返回快乐的脸。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-07-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多