在PHP中识别小数和整数

时间:2014-03-23 19:11:46

标签: php regex preg-match preg-match-all

我想在字符串中提取十进制数和整数。我在中途。

我的代码是:

$str = 'In My Cart : +11 -12 4577 012 4.5 9 +0.1 -4.9 345.876 0 items';
print_r($str);
echo "</br>";
preg_match_all('!\+*\-*(\d+)!', $str, $matches);
print_r($matches);

它正确返回整数,但它将十进制值拆分为两个值。此外,我的输出以数组(array())格式返回,而不是只返回array()。

如何正确提取十进制值并以array()格式输出?

输出:

  

用户输入:在我的购物车中:+11 -12 4577 012 4.5 9 +0.1 -4.9 345.876 0件商品   数组([0] =&gt;数组([0] =&gt; +11 [1] =&gt; -12 [2] =&gt; 4577 [3] =&gt; 012 [4] =&gt; 4 [5] =&gt; 5 [6] =&gt; 9 [7] =&gt; +0 [8] =&gt; 1 [9] =&gt; -4 [10] =&gt; 9 [11] =&gt; 345 [12 ] =&gt; 876 [13] =&gt; 0)[1] =&gt;数组([0] =&gt; 11 [1] =&gt; 12 [2] =&gt; 4577 [3] =&gt; 012 [ 4] =&gt; 4 [5] =&gt; 5 [6] =&gt; 9 [7] =&gt; 0 [8] =&gt; 1 [9] =&gt; 4 [10] =&gt; 9 [11] ] =&gt; 345 [12] =&gt; 876 [13] =&gt; 0))

1 个答案:

答案 0 :(得分:3)

使用此正则表达式:

([+-]?\d+(?:\.\d+)?)

数字(整数或浮点数)将在第1组中。