【问题标题】:How to match two digits in pregmatch?如何匹配 preg_match 中的两位数?
【发布时间】:2016-05-17 11:33:22
【问题描述】:

我返回了一个 preg_match 来检查起始数字是否为 9477 并且它工作正常。但现在我想添加另一个条件来添加94779476 应该是有效的。

条件如下:

  1. 应包含 11 位数字
  2. 应该以94779476 开头

这是我的代码:

preg_match('/^9477\d{7}$/',$Mnumber)

【问题讨论】:

    标签: php preg-match preg-match-all preg-grep


    【解决方案1】:

    在两个数字之间使用交替:

    preg_match('/^947(?:7|6)\d{7}$/',$Mnumber)
    

    (?:7|6) 是匹配数字 76 的非捕获组。非捕获组比捕获组更有效。

    你也可以这样做:

    preg_match('/^947[76]\d{7}$/',$Mnumber);
    

    [67] 是匹配数字76 的字符类

    【讨论】:

      【解决方案2】:

      在[]中使用分组

      echo preg_match('/^947[76]\d{7}$/',$Mnumber);
      

      【讨论】:

        【解决方案3】:

        只需使用(9477|9476)

        echo preg_match('/^(9477|9476)\d{7}$/',$Mnumber);
        

        你也可以使用:

        1. /^947(7|6)\d{7}$/
        2. /^947[76]\d{7}$/

        【讨论】:

          猜你喜欢
          • 2012-11-13
          • 2011-01-16
          • 2013-06-12
          • 2015-12-13
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-04-05
          相关资源
          最近更新 更多