红宝石切割领域和节约

时间:2012-07-29 17:31:04

标签: ruby field cut

我正在处理一个包含大量条目的文件

2012-07-15 10:16:27 C ?\path\to a filename\ called this file.doc

我想采取这样的一条线并切割由空格分隔的前3个字段。 所以......

var1 = 2012-07-15
var2 = 10:16:27
var3 = c

我已经google了,我似乎无法找到正确的方法。谢谢你的帮助!

2 个答案:

答案 0 :(得分:3)

Ruby的String#split接受限制作为其第二个参数。这将完全符合您的要求:

irb(main):005:0> str = "2012-07-15 10:16:27 C ?\path\to a filename\ called this file.doc"
=> "2012-07-15 10:16:27 C ?path\to a filename called this file.doc"
irb(main):006:0> str.split " ", 4                                                        
=> ["2012-07-15", "10:16:27", "C", "?path\to a filename called this file.doc"]

如果需要,可以使用解构将这些转换为局部变量:

one, two, three, rest = str.split " ", 4

答案 1 :(得分:1)

split方法可以满足您的需求:

string = '2012-07-15  10:16:27  C ?\path\to a filename\ called this file.doc'
date, time, drive =  string.split