我有一个看起来如此的字符串:
"first: [[1394,97],[13944,97]],
second: [[1394,11400],[13944,7898]]"
我正在尝试使用php preg_match_all来简单地给我(删除'first','second')
[1394,97],[13944,97],[1394,11400],[13944,7898]
然后我可以使用它创建数组。
当我使用正则表达式时:
$reg = "/(\[?(?:\[(\d{1,}),(\d{1,})\]))/";
preg_match_all($reg, $input_string, $matches);
我不明白输出:
array (size=4)
0 =>
array (size=4)
0 => string '[[1394,97]' (length=10)
1 => string '[13944,97]' (length=10)
2 => string '[[1394,11400]' (length=13)
3 => string '[13944,7898]' (length=12)
1 =>
array (size=4)
0 => string '[[1394,97]' (length=10)
1 => string '[13944,97]' (length=10)
2 => string '[[1394,11400]' (length=13)
3 => string '[13944,7898]' (length=12)
2 =>
array (size=4)
0 => string '1394' (length=4)
1 => string '13944' (length=5)
2 => string '1394' (length=4)
3 => string '13944' (length=5)
3 =>
array (size=4)
0 => string '97' (length=2)
1 => string '97' (length=2)
2 => string '11400' (length=5)
3 => string '7898' (length=4)
如何修改以返回第一个数组,这就是我想要的?
答案 0 :(得分:2)
摆脱所有捕获括号()
,如
$reg = "/\[\d{1,},\d{1,}\]/";
preg_match_all($reg, $input_string, $matches);
会给你一个输出
Array ( [0] => Array ( [0] => [1394,97]
[1] => [13944,97]
[2] => [1394,11400]
[3] => [13944,7898] ) )