我需要用一个文件中的小时来代替所有的分钟。
假设一个原始文件如下:
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/