simple gsub method

J

Jack Smith

I have simplified my method for searching test to the following:

def replacer(a, b)
x = "now is the time for all good men to come to the aid of their
country"
x.gsub(/#{a}/, b)
puts x
end

puts "enter what to replace: "
j = gets
puts "enter replacer word: "
h = gets

replacer(j, h)

Can someone help me determine why gsub can't match my "a" value?

thanks
 
S

Stefano Crocco

Alle Wednesday 01 October 2008, Jack Smith ha scritto:
I have simplified my method for searching test to the following:

def replacer(a, b)
x = "now is the time for all good men to come to the aid of their
country"
x.gsub(/#{a}/, b)
puts x
end

puts "enter what to replace: "
j = gets
puts "enter replacer word: "
h = gets

replacer(j, h)

Can someone help me determine why gsub can't match my "a" value?

thanks

Strings returned by gets end in a newline, which doesn't exist in your string,
so no match happens. To solve this, you can do

j = gets.chomp

and the same for h.

I hope this helps

Stefano
 
J

Jack Smith

It does help Stefano as I had forgotton about \n so thanks for that but
my script still does not match on my "a" value even with the chomp
method added.
 
S

Sebastian Hungerecker

Jack said:
x.gsub(/#{a}/, b)

You don't use the return value of gsub, so it is thrown away and this line
basically does nothing. Calling gsub on x, does not change x (gsub! would).

HTH,
Sebastian
 
J

Jack Smith

I take that back Stefano....you solved it for me!
I forgot to add the x.gsub! ....when I did, my script is working.

thanks a REAL lot for helping me with this!

j
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,769
Messages
2,569,579
Members
45,053
Latest member
BrodieSola

Latest Threads

Top