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

时间:2021-07-08 12:26:43

标签: regex ruby

给定一个括号内包含两个数字的字符串,我如何将这些数字分配给变量以使代码干净。 "CAR(1.2 2.5) 它是从数据库返回的字符串,我需要两个变量中括号中的数字。

a, b = "CAR(1.2 2.5)". ???

和结果:

a = 1.2
b = 2.5

问候

1 个答案:

答案 0 :(得分:1)

应该这样做:

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

scan 将查找字符串中出现的任何数字,而 map(&:to_f) 将该数字转换为浮点数。您可能希望改用 BigDecimal,具体取决于您的需要。

但是,这里有一件令人吃惊的事情——你为什么需要这样做?您正在编写自己的解析器吗?