如何在Ruby中将包含时间的字符串拆分为多个部分

时间:2013-06-05 19:29:47

标签: ruby

我有一个包含2个不同时间行的文件,如下所示:

01:31:51,210 --> 01:31:54,893

格式为hours:minutes:seconds,milliseconds。我的问题是如何将这两次分成两个数组。 line.split(':', ',')不起作用。

2 个答案:

答案 0 :(得分:3)

require 'time'
s = '01:31:51,210 --> 01:31:54,893'
a = s.split(' --> ') # => ["01:31:51,210", "01:31:54,893"]
b1 = a.map{|a1| a1.split(/[:,]/)} # => [["01", "31", "51", "210"], ["01", "31", "54", "893"]]

或者,您可以直接解析为Time个对象

b2 = a.map{|a1| Time.parse(a1)} # => [2013-06-05 01:31:51 +0400, 2013-06-05 01:31:54 +0400]

答案 1 :(得分:1)

拆分一次,然后再对结果进行拆分(使用正则表达式): line.split(" --> ").map { |l| l.split(/[:,]/) }

相关问题