From: William James Date: 2006-08-02T15:55:10+09:00 Subject: Re: newbie qustion Robert Smith wrote: > 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 "hi again" > 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 > > can somebody give me a hand? ---- code: ---- table = {} DATA.each { |line| if line =~ /^ID ( \S+ ) \s+ " (.*) "/x table[ $1 ] = $2 end } puts table.to_a.map{|a| a.join " => " } __END__ text.... text.... numbers.... IDS_SOMETHIGN_SOMETHING "giving you cookies in a sec" IDX_SOMETHING_SOMETHIGN "hi again" 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" ---- output: ---- _ONE_THING => hello how are you _ONETHINGTOO => give me a number Y_SMOTHIENG_SOMETHIGN_SOMTHIGN => HELO world S_SOMETHIGN_SOMETHING => giving you cookies in a sec _ONEMORE_THING_ANDMORE => this are strings X_SOMETHING_SOMETHIGN => hi again