我想要一个函数或代码从值为“2008 Revenue $ 5,700,390,000”的字符串中获取数值。我想要的输出是5,700,390,000美元。
答案 0 :(得分:2)
如果您完全确定该字符串将始终格式化为YEAR TYPE VALUE,并且您可以使用以下值之间的间距:
$str = "2008 Revenue $5,700,390,000";
$exploded = explode(" ", $str);
$my_value = $exploded[2];
答案 1 :(得分:1)
这可以很好地利用regular expressions(how to with PHP)。
表达式\$[\d,]+
似乎有效。
答案 2 :(得分:1)
这是一个混合使用内置的“floatval()”函数和正则表达式 - 这会处理更复杂的字符串。
function floatvalue($value) {
return floatval(preg_replace('#^([-]*[0-9\.,\' ]+?)((\.|,){1}([0-9-]{1,2}))*$#e', "str_replace(array('.', ',', \"'\", ' '), '', '\\1') . '.\\4'", $value));
}
例如,如果您有更简单的情况“32121.54BLAH”,则floatval()将在没有帮助的情况下处理这些情况。
答案 3 :(得分:0)
我只知道C#,但我会使用正则表达式,例如最简单的[\ $。0-9] +。如果您需要文化意识(例如不同的货币符号),则需要添加更多逻辑。希望这会有所帮助。