Announcement (2017-05-07): www.ruby-forum.com is now read-only since I
unfortunately do not have the time to support and maintain the forum any
more. Please see rubyonrails.org/community and ruby-lang.org/en/community
for other Rails- und Ruby-related community platforms.

Hello everyone.
How do you make a hash key using a string? For instance,
txt file...
1 This is a string 22234343
2 This is another string 434355455
3 This is a different string 34324545
file = File.open("mytext4hash.txt")
file.each_line do |line|
rows = {}
key, val = line.chomp.split("""",4)
rows[key] = val
#this is where I am having issue.
puts rows["1 This is a string"] #need this to point to only "22234343"
end
Thanks in advance. MC

Try this:
file = File.open("mytext4hash.txt")
rows = {}
file.each_line do |line|
/(.+)\s+(\d+)$/ =~ line.chomp
key = Regexp.last_match(1)
val = Regexp.last_match(2)
rows[key] = val
end
puts rows["1 This is a string"] #need this to point to only "22234343"
First, you were initializing "rows" inside the loop, which meant you
only kept the last line parsed! The regular expression does this:
(.+) matches at least one character (defaults to starting at the
beginning) and save it in the first "capture group". The parentheses
do that for you. I then refer to it on the next line; the "1" passed
to last_match.
\s+ matches at least one space.
(\d+)$ matches at least one digit at the end of the line ($) and
saves it as the second capture group.
Make sense?
dean