我想从以下字符串中获取值146273.0017
。
(["JPY-XAU,146273.0017"]);
这样做的最佳方式是什么?
答案 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);
}
有关您希望如何获得所需数字的一些说明,他将有助于缩小适合您的答案,或者在您的情况下这些(以及此页面上的其他有效答案)都不是正确答案