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
···
--
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
···
On 8/2/06, Robert Smith <ricardo.orozco@hp.com> wrote:
I'm trying to parse a file that looks like this:
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
--
Posted via http://www.ruby-forum.com/\.