我想在字符串中提取十进制数和整数。我在中途。
我的代码是:
$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))
答案 0 :(得分:3)
使用此正则表达式:
([+-]?\d+(?:\.\d+)?)
数字(整数或浮点数)将在第1组中。