正则表达式搜索帮助

时间:2009-05-25 18:59:40

标签: php regex arrays

给出如下字符串:

a:2:{i:0;s:1:"1";i:1;s:1:"2";}

我想找到引号中的每个整数,并创建一个在字符串中找到的所有整数的数组。

最终结果应该是一个数组:

Array
(
    [0] => 1
    [1] => 2
)

我猜你使用了preg_match(),但我对正则表达式没有经验:(

2 个答案:

答案 0 :(得分:7)

这个怎么样:

 $str = 'a:2:{i:0;s:1:"1";i:1;s:1:"2";}';
 print_r(array_values(unserialize($str)));

不是正则表达式,同样的答案。

这是有效的,因为你拥有的字符串是一个序列化的PHP数组。使用正则表达式是错误的方法。

答案 1 :(得分:0)

正则表达式(在程序中)看起来像这样:

$str = 'a:2:{i:0;s:1:"1";i:1;s:1:"2";}';
preg_match_all('/"(\d+)"/', $str, $matches);
print_r($matches[1]);