如何匹配 preg_match 中的两位数?

Posted

技术标签:

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

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

条件如下:

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

这是我的代码:

preg_match('/^9477\d7$/',$Mnumber)

【问题讨论】:

【参考方案1】:

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

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

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

你也可以这样做:

preg_match('/^947[76]\d7$/',$Mnumber);

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

【讨论】:

【参考方案2】:

在[]中使用分组

echo preg_match('/^947[76]\d7$/',$Mnumber);

【讨论】:

【参考方案3】:

只需使用(9477|9476)

echo preg_match('/^(9477|9476)\d7$/',$Mnumber);

你也可以使用:

    /^947(7|6)\d7$/ /^947[76]\d7$/

【讨论】:

以上是关于如何匹配 preg_match 中的两位数?的主要内容,如果未能解决你的问题,请参考以下文章