How to parse a tab-separated line of text in Ruby?

alamodey picture alamodey · Mar 3, 2009 · Viewed 14.2k times · Source

I find Ruby's each function a bit confusing. If I have a line of text, an each loop will give me every space-delimited word rather than each individual character.

So what's the best way of retrieving sections of the string which are delimited by a tab character. At the moment I have:

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

but that is not quite correct.

Answer

Ben picture Ben · Mar 3, 2009

I'm not sure I quite understand your question, but if you want to split the lines on tab characters, you can specify that as an argument to split:

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

or you can specify it as a regular expression:

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

Each basically just iterates through all the items in an array, and split produces an array from a string.