Newbie qustion

I’m trying to parse a file that looks like this:

text…
text…
numbers…

IDS_SOMETHIGN_SOMETHING “giving you cookies in a sec”
IDX_SOMETHING_SOMETHIGN
IDY_SMOTHIENG_SOMETHIGN_SOMTHIGN “HELO world”
ID_ONE_THING “hello how are you”
ID_ONETHINGTOO “give me a number”
ID_ONEMORE_THING_ANDMORE “this are strings”

I’m trying to create a hash table but i’m not sure what’s wrong with my
delimeters:

class Parser

table = { }
IO.foreach(‘resurcefiletest’) { |line|
if line =~ /^ID* (.?) = \s " (.?) "/x
#if line =~ /^ \s
" (.?) " \s = \s* " (.*?) "/x
table[ $1 ] = $2
end
}

#puts table[“StaplingTitle”]
p table

end

On 8/2/06, Robert S. [email protected] wrote:

ID_ONE_THING “hello how are you”
if line =~ /^ID* (.?) = \s " (.*?) "/x


Posted via http://www.ruby-forum.com/.

My Regex’s aren’t that good. To me it looks like your trying to find
something in the format
“stuff” = “stuff”

is that correct?

Assuming that it is for now. From Erics solution

table = {}

File.foreach filename do |line|
next unless line =~ /^ID(\S+) “(.*?)”/
key, value = line.split("=")
table[key] = value
end

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs