1

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

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

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

4

3 回答 3

2

您可以将字符串中不是数字的所有内容替换为空,从而为您提供仅包含数字的字符串。

$string = preg_replace("/[^\d]/", "", $string);
echo $string;
于 2013-07-23T07:58:06.433 回答
1

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

if (preg_match('~\d+(?:,\d+)*(?:\.\d+)?~', $string, $match))
    $result = str_replace(',', '', $match[0]);
于 2013-07-23T08:02:37.470 回答
0
//This will replace anything that is not a number with a blank string.
$number = preg_replace("#[^0-9]*#", "", "1,123");

不过要小心“1,233.90”。

于 2013-07-23T07:59:00.330 回答