Ruby 查找字符串中的第一个小数点

Ruby 查找字符串中的第一个小数点,ruby,Ruby,我有两组数字组成的字符串。我试图将它们拆分为两个子字符串,以便在每个小数点后有两位小数 我有以下代码: if homeodds.length == 10 then homeoddsp = homeodds[0,5].to_f bookieh = homeodds[5,5].to_f else homeoddsp = homeodds[0,4].to_f bookieh = homeodds[4,4].to_f end 它可以处理8位数的字符串: “1.211.90”翻译

我有两组数字组成的字符串。我试图将它们拆分为两个子字符串,以便在每个小数点后有两位小数

我有以下代码:

if homeodds.length == 10 then
   homeoddsp = homeodds[0,5].to_f
   bookieh = homeodds[5,5].to_f
else
   homeoddsp = homeodds[0,4].to_f
   bookieh = homeodds[4,4].to_f
end
它可以处理8位数的字符串:
“1.211.90”
翻译为
“1.21”
“1.90”

十位数的字符串也可以工作:
“12.2113.00”
翻译为
“12.21”
“13.00”

当我有一个九位数的字符串,如
“9.1110.00”
“10.119.55”
,我需要找出第一个小数点在哪里,然后取两位数,以便余数成为第二个子字符串。在这些情况下,我无法始终这样做。

您可以使用
String#scan
来解决此特定问题

def decimal_splits(string)
  string.scan(/\d+\.\d{2}/)
end
要分解正则表达式,请执行以下操作:

  • \d+
    1或更多位数
  • \。
    小数点
  • \d{2}
    两位数字
结果将是表达式的匹配数组

decimal_splits("9.1110.00")
#=> ["9.11", "10.00"]
decimal_splits("12.2113.00")
#=> ["12.21", "13.00"]
decimal_splits("1.211.90")
#=> ["1.21", "1.90"]
decimal_splits("10.119.55")
#=> ["10.11", "9.55"]
您可以使用
String#scan
解决此特定问题

def decimal_splits(string)
  string.scan(/\d+\.\d{2}/)
end
要分解正则表达式,请执行以下操作:

  • \d+
    1或更多位数
  • \。
    小数点
  • \d{2}
    两位数字
结果将是表达式的匹配数组

decimal_splits("9.1110.00")
#=> ["9.11", "10.00"]
decimal_splits("12.2113.00")
#=> ["12.21", "13.00"]
decimal_splits("1.211.90")
#=> ["1.21", "1.90"]
decimal_splits("10.119.55")
#=> ["10.11", "9.55"]