如何匹配 preg_match 中的两位数?
Posted
技术标签:
【中文标题】如何匹配 preg_match 中的两位数?【英文标题】:How to match two digits in pregmatch? 【发布时间】:2016-05-17 11:33:22 【问题描述】:我返回了一个 preg_match 来检查起始数字是否为 9477
并且它工作正常。但现在我想添加另一个条件来添加9477
或9476
应该是有效的。
条件如下:
-
应包含 11 位数字
应该以
9477
或9476
开头
这是我的代码:
preg_match('/^9477\d7$/',$Mnumber)
【问题讨论】:
【参考方案1】:在两个数字之间使用交替:
preg_match('/^947(?:7|6)\d7$/',$Mnumber)
(?:7|6)
是匹配数字 7
或 6
的非捕获组。非捕获组比捕获组更有效。
你也可以这样做:
preg_match('/^947[76]\d7$/',$Mnumber);
[67]
是匹配数字7
或6
的字符类
【讨论】:
【参考方案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 中的两位数?的主要内容,如果未能解决你的问题,请参考以下文章
使用 preg_match 匹配 IMG 标签的 SRC 属性
如何在PHP中preg_match一个可以为NULL的变量?