2009-03-03 10 views
5

Rubyのeachの機能がちょっと混乱しています。私はテキスト行を持っている場合、eachループは、個々の文字ではなくスペースで区切られた単語を私に与えます。Rubyでタブ区切りのテキスト行を解析するには?

だから、タブ文字で区切られた文字列のセクションを取得する最良の方法は何ですか。現時点では、私は持っています:

line.split.each do |word| 
... 
end 

しかしそれは間違いです。

答えて

16

は、私は非常にあなたの質問を理解していないが、あなたはタブ文字で行を分割したい場合は、引数として分割するように指定することができます

line.split("\t").each ... 

かのようにそれを指定することができます正規表現:

line.split(/\t/).each ... 

それぞれは、基本的に配列内のすべての項目を反復処理し、splitは文字列から配列を生成します。

+0

シンプルなケースには問題ありません。しかし、それは簡単ではありません。コンテンツが外部ソースからのものである場合、多数のエッジケースが存在します。改行、エスケープシーケンス、引用符などは、アプリケーションごとに非常に異なっています。 –

関連する問題