Ruby Regex:反向引用数学

时间:2010-09-13 00:11:51

标签: ruby regex

我需要在文件中用小时替换所有分钟。

假设一个原始文件,如下所示: 120米 90米

应改为: 2H 1.5小时

2 个答案:

答案 0 :(得分:6)

如果您可以使用它来打印“2.0”而不是“2”,您可以这样做:

"120m 90m".gsub(/(\d+)m/) { "#{$1.to_f / 60.0}h"}
#=> "2.0h 1.5h"

如果您需要在没有“.0”的情况下打印它,您需要检查该数字是否可被60整除,如果是,则返回$1.to_i / 60而不是$1.to_f / 60.0

或者你可以在浮动上调用to_s,如果字符串以“.0”结尾,则删除.0

答案 1 :(得分:1)

除了sepp2k的回答。

"120m 90m".gsub(/(\d+)m/) { "#{($1.to_f / 60.0).to_s.gsub(/\.0$/, '')}h"}
#=> "2h 1.5h"