Hi, I come from a little bit of C programming, an I’ve just started
learning Ruby. So forgive me for the stupid question.
Following the user guide, I found a regular expression example
(rexg.rb), that doesn’t work for me.
If I try to find an exact pattern everything is fine: for example,
searching “foo” in “foobar” returns the correct result. But searching a
regexp pattern doesn’t: “fo+” doesn’t find anything in “foobar”.
I’m running Ruby 1.8 under Linux.
Thank you in advance for your help,
Hi, I come from a little bit of C programming, an I’ve just started
learning Ruby. So forgive me for the stupid question.
Following the user guide, I found a regular expression example
(rexg.rb), that doesn’t work for me.
If I try to find an exact pattern everything is fine: for example,
searching “foo” in “foobar” returns the correct result. But searching a
regexp pattern doesn’t: “fo+” doesn’t find anything in “foobar”.
I’m running Ruby 1.8 under Linux.
Thank you in advance for your help,
Could you provide the examples you have tried? I did not really get you,
as for me:
your example works. Please send the code snippets which did not work for
print "str> "
STDOUT.flush
str = gets
break if not str
str.chop!
print "pat> "
STDOUT.flush
re = gets
break if not re
re.chop!
str.gsub! re, “#{st}\&#{en}”
Normal: this code is doing simple string lookup, as in this line, re
is a String and not a Regexp. You should try this instead:
On Tue, 2006-10-31 at 20:00 +0900, Peter S. wrote:
Could you provide the examples you have tried? I did not really get you,
as for me:
irb(main):003:0> “foobar” =~ /foo/
=> 0
irb(main):004:0> “foobar” =~ /fo+/
=> 0
your example works. Please send the code snippets which did not work for
you.
I did not explain me too well.
This code works for me too. I was referring to the User Guide example.
Here is the code that doesn’t work for me:
st = “\033[7m”
en = “\033[m”
while TRUE
print "str> "
STDOUT.flush
str = gets
break if not str
str.chop!
print "pat> "
STDOUT.flush
re = gets
break if not re
re.chop!
str.gsub! re, “#{st}\&#{en}”
print str, “\n”
end
print “\n”
puts string.gsub pattern, “#{st}\&#{en}”
end
######## LOTSA CODE END ########
i think that would be a more ‘rubylike’ way to write it… also making
your intention a bit clearer
you are not in C anymore, you can loosen your grip a little
----- Original Message -----
From: “Peter S.” [email protected]
To: “ruby-talk ML” [email protected]
Sent: Tuesday, October 31, 2006 6:00 AM
Subject: Re: Learning R.
the 0 indicates that a match was found at offset 0
“foobar” =~ /oo/
=> 1
“foobar” =~ /boo/
=> nil
In ruby, 0 or empty string is not “false”, only nil or false are false
anything else is true
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.