我有一堆以这种格式开放时间的字符串:
Mon-Fri: AM7:00-PM8:00\nSat-Sun: AM8:00-PM6:00
我可以处理" AM"部分只是删除它,但我想通过
转换PM字符串中可以有零个或多个PM时间。
我不确定如何将时间作为一个数字来操纵。我已经走到了这一步:
opening_hours.sub! /PM([\d]?[\d]):/, "***\1***"
其中输出的内容如下:
AM7:15-***\u0001***00
' \ u0001`可能是由字符串中的日文字符引起的。
答案 0 :(得分:4)
您可以利用String#gsub
接受阻止的事实。这样的事情会对你有用吗?
s = "Mon-Fri: AM7:00-PM8:00\nSat-Sun: AM8:00-PM11:00"
s2 = s.gsub('AM', '').gsub(/PM(\d+)/) do |match|
(match.gsub('PM', '').to_i + 12).to_s
end
s2 # => "Mon-Fri: 7:00-20:00\nSat-Sun: 8:00-23:00"
答案 1 :(得分:3)
看看这个问题,ruby有一个名为datatime的类。