From: Eric Hodel Date: 2006-08-02T07:42:21+09:00 Subject: Re: newbie qustion On Aug 1, 2006, at 3:35 PM, 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 //x just gets confusing. Make your regexp simple: table = {} File.foreach filename do |line| next unless line =~ /^ID(\S+) "(.*?)"/ table[$1] = $2 end -- Eric Hodel - drbrain@segment7.net - http://blog.segment7.net This implementation is HODEL-HASH-9600 compliant http://trackmap.robotcoop.com