如何解析php中字符串的值

时间:2015-06-10 01:51:45

标签: php

我想从以下字符串中获取值146273.0017

(["JPY-XAU,146273.0017"]);

这样做的最佳方式是什么?

3 个答案:

答案 0 :(得分:2)

您可以使用正则表达式

$str = '(["JPY-XAU,146273.0017"]);';

preg_match("/,(.*?)\"/", $str, $res);

echo $res[1]; // 146273.0017

答案 1 :(得分:1)

// First cleanup stuff we don't need:
$string = '(["JPY-XAU,146273.0017"]);';
$string = str_replace(array('(', ')', '[', ']', '"', ';'), '', $string);

// Split the inner values
$parts  = explode(',', $string);

// Echo the results
echo $parts[0];
echo $parts[1];

返回:

JPY-XAU

146273.0017

如果你想要,你可以将该数字转换为浮点数,即:(浮动)$ string [1]

答案 2 :(得分:1)

如果你正在寻找数字部分,那么正则表达式会抓住它:

$pattern = "/(\d*\.)?\d+/";
$subject = '(["JPY-XAU,146273.0017"]);';
if (preg_match($pattern, $subject, $match)) {
    print_r($match);
}

如果你正在寻找逗号之后的任何内容,并且你忽略了它周围的两组括号(但是它们是你在评论中澄清的字符串的一部分,所以需要被忽略),那么你也可以使用正则表达式在逗号上拆分:

$pattern = "/\[\((.*?),(.*?)\)\]/";
$subject = '(["JPY-XAU,146273.0017"]);';
if (preg_match($pattern, $subject, $match)) {
    print_r($match);
}

有关您希望如何获得所需数字的一些说明,他将有助于缩小适合您的答案,或者在您的情况下这些(以及此页面上的其他有效答案)都不是正确答案