我想从字符串中提取一个数字,字符串就像1,239 peoples
. 我需要1239
上述字符串的输出。我使用以下便宜的方法来提取该数字....
$text='1,239 peoples';
$text=str_replace(',','',$text);
preg_match_all('!\d+!', $text, $matches);
echo $matches[0][0];
有没有更好的解决方案..提前谢谢...
您可以将字符串中不是数字的所有内容替换为空,从而为您提供仅包含数字的字符串。
$string = preg_replace("/[^\d]/", "", $string);
echo $string;
一种更安全的方法是首先提取您想要的内容,之后且仅在为其提供良好格式之后,例如:
if (preg_match('~\d+(?:,\d+)*(?:\.\d+)?~', $string, $match))
$result = str_replace(',', '', $match[0]);
//This will replace anything that is not a number with a blank string.
$number = preg_replace("#[^0-9]*#", "", "1,123");
不过要小心“1,233.90”。