给定一个括号内包含两个数字的字符串,如何将这些数字分配给变量以清除代码。";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。
但是,有一件事让人惊讶——你为什么要这么做?你在写你自己的解析器吗?