如何使用正则表达式检查字符串是否为正确的数组格式?
How to check if the string is in proper array format with regex?
我想检查字符串是否是正确的数组结构,例如:
"[0,1,2,3,4,5,6,7,8,9]"
我想要的正则表达式应该匹配开头 [
和结尾 ]
的方括号,并且在方括号内,它应该只包含数字 0-9
和逗号 ,
.同上 即数字数组,但它是一个字符串.
我尝试了以下方法:
/\[\d+\]/
但它不适用于逗号 ,
。
已编辑:
我从 POST
方法接收 "[0,1,2,3,4,5,6,7,8,9]"
作为字符串。
显然根本不是正则表达式,但您最终会得到所需的整数数组,并且没有运行时错误。
if (is_array($array = json_decode($string)) && array_filter($array, 'is_int') == $array) {
// $string is a properly formatted array of ints, now in $array. Do stuff with it
} else {
// $string is something else, return an error or whatever
}
我知道这已经得到解答,但如果有人可能需要此正则表达式用于其他目的,您可以使用 ^\[([0-9]|.+(,[0-9])+)\]$
快速解释:
您的输入必须仅包含 0 - 9 [0-9]
之间的数字,可以用 ,
分隔,每个 ,
后面必须跟另一个数字 [0-9]
可以这样表达:[0-9]|.+(,[0-9])
所有数字都必须在以 [ 开头并以 ] 结尾的方括号内,因为方括号在正则表达式中是特殊字符,所以我们需要对它们进行转义:\[
和 \]
测试这个表达式
我想检查字符串是否是正确的数组结构,例如:
"[0,1,2,3,4,5,6,7,8,9]"
我想要的正则表达式应该匹配开头 [
和结尾 ]
的方括号,并且在方括号内,它应该只包含数字 0-9
和逗号 ,
.同上 即数字数组,但它是一个字符串.
我尝试了以下方法:
/\[\d+\]/
但它不适用于逗号 ,
。
已编辑:
我从 POST
方法接收 "[0,1,2,3,4,5,6,7,8,9]"
作为字符串。
显然根本不是正则表达式,但您最终会得到所需的整数数组,并且没有运行时错误。
if (is_array($array = json_decode($string)) && array_filter($array, 'is_int') == $array) {
// $string is a properly formatted array of ints, now in $array. Do stuff with it
} else {
// $string is something else, return an error or whatever
}
我知道这已经得到解答,但如果有人可能需要此正则表达式用于其他目的,您可以使用 ^\[([0-9]|.+(,[0-9])+)\]$
快速解释:
您的输入必须仅包含 0 - 9
[0-9]
之间的数字,可以用,
分隔,每个,
后面必须跟另一个数字[0-9]
可以这样表达:[0-9]|.+(,[0-9])
所有数字都必须在以 [ 开头并以 ] 结尾的方括号内,因为方括号在正则表达式中是特殊字符,所以我们需要对它们进行转义:
\[
和\]