1

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

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

我已经四处搜索,但似乎找不到正确的使用方法。感谢您的帮助!

4

2 回答 2

3

RubyString#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

于 2012-07-29T17:37:30.003 回答
1

split 方法会做你想做的事:

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