我找不到合适的正则表达式只从字符串中提取浮点数.请考虑以下字符串:
$string = "8x2.1 3x2";
Run Code Online (Sandbox Code Playgroud)
我想提取2.1,我尝试了以下但这给了我整数和浮点数:
preg_match_all('/[0-9,]+(?:\.[0-9]*)?/', $string, $matches);
Run Code Online (Sandbox Code Playgroud)
然后我尝试使用 is_float检查浮点数但这也因某些原因返回整数.有任何想法吗?谢谢
考虑这个简单的例子:
<?php
$input = "8x2.1 3x2";
preg_match('/\d+\.\d+/', $input, $tokens);
print_r($tokens);
Run Code Online (Sandbox Code Playgroud)
匹配"一个或多个数字,然后恰好一个完整停止,再一个或多个数字".
输出显然是:
Array
(
[0] => 2.1
)
Run Code Online (Sandbox Code Playgroud)