Ruby Regex:反向引用数学

Dex*_*Dex 2 ruby regex

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

假设这样的原始文件:120m 90m

应改为:2h 1.5h

sep*_*p2k 6

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

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

如果你需要它打印而没有".0",你需要检查数字是否可被60整除,如果是,则返回$1.to_i / 60而不是$1.to_f / 60.0.

或者你可以调用to_s浮点数,.0如果字符串以".0"结尾则删除