【发布时间】:2013-04-25 10:24:39
【问题描述】:
我需要捕获一些字符串数组.. 我一直在尝试但我不能:$
我的代码中有这个:
<?php
$feed = "[['2013/04/03',8.300],['2013/04/04',8.320],['2013/04/05',8.400]]";
preg_match_all("/\[(.*?)\]/",$feed,$matches);
print_r($matches);
并且正在返回:
Array
(
[0] => Array
(
[0] => [['2013/04/03',8.300]
[1] => ['2013/04/04',8.320]
[2] => ['2013/04/05',8.400]
)
[1] => Array
(
[0] => ['2013/04/03',8.300
[1] => '2013/04/04',8.320
[2] => '2013/04/05',8.400
)
)
我如何使用 preg_match_all 或 preg_split.. 或返回一个元素数组(如 $matches[1][1] 或 $matches[1][2])所需的任何方法??
我的意思是每个元素的格式应该是:
'2013/04/05',8.400
希望清楚:)
提前致谢!!
【问题讨论】:
-
我在这里可能完全错了,但这个例子看起来像一个有效的 JSON 数组。做
json_decode然后把它当作一个普通的数组使用不是更容易吗? -
您可以使用
(?<=^\[|,)\[(.*?)\]。 -
或者让你的正则表达式更具体
\[('\d{4}\/\d{2}\/\d{2}',\d+(?:\.\d+)?)\] -
哈姆扎!!第二个返回的数组正是我需要的!有可能在一个数组中得到它吗?
-
@lizaaard 抱歉,
preg_match_all()就是这样工作的,所以你必须做类似$array = $matches[1]的事情;
标签: php regex preg-match-all