我在创建regex方面做得非常糟糕,而且我也在为我确信这是一个简单的愚蠢正则表达式而奋斗。
我正在使用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。
发布于 2015-07-09 11:00:39
正则表达式必须符合以下要求:从0-2或7-9开始,并有16个字符。
您可以在相同的字符类中放置起始数字,并在匹配15个字符之后使用结束锚点:
/^[0-27-9].{15}$/
如果只想匹配数字,请使用:
/^[0-27-9]\d{15}$/
https://stackoverflow.com/questions/31315430
复制相似问题