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は、2 番目のパラメーターとして制限を受け入れます。これはまさにあなたが探していることを行います:

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 に答える