从字符串中提取格式化的数字

时间:2013-07-23 07:55:21

标签: php regex

我想从字符串中提取一个数字,字符串就像1,239 peoples。我需要从上面的字符串输出1239。我使用以下便宜的方法来提取该数字....

$text='1,239 peoples';
$text=str_replace(',','',$text);
preg_match_all('!\d+!', $text, $matches);
echo $matches[0][0];

有没有更好的解决方案......提前谢谢...

3 个答案:

答案 0 :(得分:2)

你可以用字母替换字符串中不是数字的所有内容,这样就会给你一个只有数字的字符串。

$string = preg_replace("/[^\d]/", "", $string);
echo $string;

答案 1 :(得分:1)

更安全的方法是首先在之后提取您想要的内容,并且只有在为其提供良好格式之后,例如:

if (preg_match('~\d+(?:,\d+)*(?:\.\d+)?~', $string, $match))
    $result = str_replace(',', '', $match[0]);

答案 2 :(得分:0)

//This will replace anything that is not a number with a blank string.
$number = preg_replace("#[^0-9]*#", "", "1,123");
小心“1,233.90”到。