你能帮我正确表达一下这个:
$value = '["number"]';
or
$value = '["number","number"]';
or
$value = '["number","number","number"]';
or
...
...
...
...
$value = '["number","number","number","number","number","number","number"......,"number"]';
//$number can be rand(0, 99.....999);
我需要将结果验证为真或假!
答案 0 :(得分:2)
你真的需要使用PCRE吗?你的例子是有效的json。
$array = json_decode('["number", "number", "123"]');
var_dump($array);
如果您只需要数字,可以过滤它。
$new_array = array_filter($array, 'ctype_digit');
$result = count($array) == $new_array? $new_array : null;
var_dump($result);
答案 1 :(得分:2)
这是我的版本:
function test($v)
{
if (preg_match('/^\\[("number")(,"number")*\\]$/', $v))
echo 'ok<br>';
else
echo 'fail<br>';
}
或者如果“数字”确实是数字,那么这个:
function test($v)
{
if (preg_match('/^\\[("[0-9]+")(,"[0-9]+")*\\]$/', $v))
echo 'ok<br>';
else
echo 'fail<br>';
}
注意 - 只接受正面自然,需要更改为负数和十进制/浮点数