PHP正则表达式如下

时间:2014-07-25 11:19:10

标签: php regex

我有一个包含以下元素的变量

$value= ' ["1","7.9","12\/01\/2015"] ';

现在我想创建一个数组,它将包含以下值: -

$array[0] = 7.9;
$array[1] = 12/01/2015;

我想要PHP Regex能够以上述方式分离以下元素。 我试过了

$ans = preg_match('/^[0-9,]+$/', $value);

但这不起作用。 Plz帮助做什么。 以上述方式获取数组。

array[0] = 7.9; //amount
array[1]= 12/01/2015; //Date

1 个答案:

答案 0 :(得分:3)

您的价值" ["1","7.9","12\/01\/2015"] "在我看来是一个json编码数组,我使用json_decode来获得您想要的内容:

$value = ' ["1","7.9","12\/01\/2015"] ';
$array = json_decode(trim($value));//remove leading and trailing spaces
//or as pointed out to me in the comments
$array = json_decode($value);
//remove first element ($array is now [1, 7.9, 12/01/2015]
$result = array_slice($array, 1);
var_dump($result);//array(7.9, 12/01/2015)

这假设值(1,7.9和日期)周围的双引号被正确转义,因为它代表$value不是有效的字符串。

codepad demo

使用像/[^\/\.,"]+[\.\/][^"\.,]+/这样的正则表达式也可以,但总而言之,这里不建议这样做。不过,为了完整性:

preg_match_all('/[^\/\.,"]+[\.\/][^"\.,]+/', $value, $matches);
$result = $matches[0];
var_dump($result);