要从PHP中的字母数字字符串中获取数值?

时间:2010-02-05 13:28:41

标签: php string

我想要一个函数或代码从值为“2008 Revenue $ 5,700,390,000”的字符串中获取数值。我想要的输出是5,700,390,000美元。

4 个答案:

答案 0 :(得分:2)

如果您完全确定该字符串将始终格式化为YEAR TYPE VALUE,并且您可以使用以下值之间的间距:

$str = "2008 Revenue $5,700,390,000";

$exploded = explode(" ", $str);

$my_value = $exploded[2];

答案 1 :(得分:1)

这可以很好地利用regular expressionshow 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] +。如果您需要文化意识(例如不同的货币符号),则需要添加更多逻辑。希望这会有所帮助。