我找不到合适的正则表达式来仅从字符串中提取 float 。 考虑以下字符串:
$string = "8x2.1 3x2";
我想提取 2.1,我尝试了以下操作,但这给了我整数和 float :
preg_match_all('/[0-9,]+(?:\.[0-9]*)?/', $string, $matches);
然后我尝试使用 is_float
检查 float ,但出于某种原因这也会返回整数。有任何想法吗?
谢谢
最佳答案
考虑这个简单的例子:
<?php
$input = "8x2.1 3x2";
preg_match('/\d+\.\d+/', $input, $tokens);
print_r($tokens);
匹配“一位或多位数字,后跟一个句点,然后是一位或多位数字”。
输出显然是:
Array
(
[0] => 2.1
)
https://stackoverflow.com/questions/42354117/