从php中的字符串中提取正负浮点数

Posted

技术标签:

【中文标题】从php中的字符串中提取正负浮点数【英文标题】:Extract positive and negative floating point numbers from a string in php 【发布时间】:2015-06-25 19:32:02 【问题描述】:

对于 php,我必须从字符串中提取浮点数。我是正则表达式的新手,但我找到了一个在大多数情况下都适合我的解决方案:

Extract floating point numbers from a string in PHP

$str = '152.15 x 12.34 x 11mm';
preg_match_all('!\d+(?:\.\d+)?!', $str, $matches);
$floats = array_map('floatval', $matches[0]);
print_r($floats);

唯一的问题是负值;有人可以以正确包含负数的方式为我更改表达式吗?

谢谢!

【问题讨论】:

【参考方案1】:
-?\d+(?:\.\d+)?

这应该为你做。

$re = "/-?\\d+(?:\\.\\d+)?/m"; 
$str = "4.321 -3.1212"; 
$subst = "coach"; 

$result = preg_replace($re, $subst, $str);

【讨论】:

谢谢,但这给了我“警告:preg_match_all(): 没有找到结束分隔符 '-' 很遗憾...... 仍然无法正常工作...测试字符串类似于“数字是 -3.026 和 5.65 或 6525K”,我正在寻找一个包含 -3.026、5.65 和 6525 的数组... . 与上面链接中的功能相同,只是保留“-”号。

以上是关于从php中的字符串中提取正负浮点数的主要内容,如果未能解决你的问题,请参考以下文章

如何从js中的字符串中提取每个整数或浮点数(正数或负数)

如何从字符串中提取浮点数[重复]

php数据类型

计算机中的定点数与浮点数 浮点数用 正负位 幕数 数字部分来表示

如何从 C 中的浮点数中提取有偏指数?

如何从 PySpark 中的向量列中提取浮点数?