[英]Regex to match specific pattern
我在创建正则表达式方面非常不好,并且我为确保它是一个简单的愚蠢正则表达式而苦苦挣扎。
我正在使用PHP进行此匹配。 这是我到目前为止所拥有的。
Test string: 8848842356063003
if(!preg_match('/^[0-2]|[7-9]{16}/', $token)) {
return array('status' => 'failed', 'message' => "Invalid token", 'token' => '');
}
正则表达式必须符合此要求:以0-2或7-9开头,并且必须有16个字符。 我究竟做错了什么? 因为我得到了,作为匹配:
array(
0 => 8
)
我应该得到:
array(
0 => 8848842356063003
)
顺便说一句:我正在使用PHP Live Regex测试我的正则表达式字符串。
在此先感谢,战神D。
正则表达式必须符合以下要求:以0-2或7-9开头,且必须有16个字符
您可以将起始数字放在相同的字符类中,并在匹配另外15个字符后使用结尾锚:
/^[0-27-9].{15}$/
如果只想匹配数字,请使用:
/^[0-27-9]\d{15}$/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.