将字符串中的多个数字提取到变量中



给定一个括号内包含两个数字的字符串,如何将这些数字分配给变量以清除代码。";POINT(1.21212 2.51212(它是从postgresql/postgis返回的字符串。

a, b = "POINT(1.21212 2.51212)". ???

结果:

a = 1.21212
b = 2.51212

问候

这应该做:

a, b = "CAR(1.2 2.5)".scan(/d+(?:.d+)?/).map(&:to_f)

scan将查找字符串中出现的任何数字,map(&:to_f)将该数字转换为浮点数。根据您的需要,您可能需要使用BigDecimal。

但是,有一件事让人惊讶——你为什么要这么做?你在写你自己的解析器吗?

最新更新