我需要用一个文件中的小时来代替所有的分钟。
假设一个原始文件如下:
120米
90米
应改为:
2h
1.5小时

最佳答案

如果你能忍受它打印“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
或者,您可以在float上调用to_s,如果字符串以“.0”结尾,则删除.0

关于ruby - Ruby Regex:关于反向引用的数学,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3697225/

10-12 17:07
查看更多