Asp Forum
Home
|
Login
|
Register
|
Search
Forums
>
comp.lang.ruby
match with string instead of regexp fails
matt
10/11/2006 4:57:00 PM
According to the 1.8.5 core API:
str =~ obj => fixnum or nil
Match. If obj is a Regexp, use it as a pattern to match against str. If
obj is a String, look for it in str (similar to String#index). Returns
the position the match starts, or nil if there is no match.
So I expect "cat" =~ "a" #=> 1
But:
irb(main):013:0> RUBY_VERSION
=> "1.8.5"
irb(main):014:0> "cat" =~ "a"
TypeError: type mismatch: String given
from (irb):14:in `=~'
from (irb):14
from :0
An undocumented change? Sorry if this has come up before, I did try to
find out. Thx - m.
--
matt neuburg, phd = matt@tidbits.com,
http://www.tidbits...
Tiger -
http://www.takecontrolbooks.com/tiger-custom...
AppleScript -
http://www.amazon.com/gp/product/...
Read TidBITS! It's free and smart.
http://www.t...
2 Answers
Jano Svitok
10/11/2006 7:07:00 PM
0
On 10/11/06, matt neuburg <matt@tidbits.com> wrote:
> According to the 1.8.5 core API:
>
> str =~ obj => fixnum or nil
>
> Match. If obj is a Regexp, use it as a pattern to match against str. If
> obj is a String, look for it in str (similar to String#index). Returns
> the position the match starts, or nil if there is no match.
>
> So I expect "cat" =~ "a" #=> 1
>
> But:
>
> irb(main):013:0> RUBY_VERSION
> => "1.8.5"
> irb(main):014:0> "cat" =~ "a"
> TypeError: type mismatch: String given
> from (irb):14:in `=~'
> from (irb):14
> from :0
>
> An undocumented change? Sorry if this has come up before, I did try to
> find out. Thx - m.
In the CVS [1] there's a new documentation omitting the 'string'
clause, so I suppose it's a documentation error.
If you know a bit of C you can see for yourself.
From the CVS history - the TypeError was added around 1.8.2, so it's
there pretty long.
The doc was fixed between 1.8.5-pre1 and 1.8.5-pre2. Form that it
seems that the docs on ruby-doc are rather old, and not exactly 1.8.5
ones as they say...
[1]
http://www.ruby-lang.org/cgi-bin/cvsweb.cgi/ruby/string.c?rev=1.182.2.53;content-type=te...
matt
10/11/2006 8:37:00 PM
0
Jan Svitok <jan.svitok@gmail.com> wrote:
> On 10/11/06, matt neuburg <matt@tidbits.com> wrote:
> > According to the 1.8.5 core API:
> >
> > str =~ obj => fixnum or nil
> >
> > Match. If obj is a Regexp, use it as a pattern to match against str. If
> > obj is a String, look for it in str (similar to String#index). Returns
> > the position the match starts, or nil if there is no match.
> >
> > So I expect "cat" =~ "a" #=> 1
> >
> > But:
> >
> > irb(main):013:0> RUBY_VERSION
> > => "1.8.5"
> > irb(main):014:0> "cat" =~ "a"
> > TypeError: type mismatch: String given
> > from (irb):14:in `=~'
> > from (irb):14
> > from :0
> >
> > An undocumented change? Sorry if this has come up before, I did try to
> > find out. Thx - m.
>
> In the CVS [1] there's a new documentation omitting the 'string'
> clause, so I suppose it's a documentation error.
>
> If you know a bit of C you can see for yourself.
>
> From the CVS history - the TypeError was added around 1.8.2, so it's
> there pretty long.
>
> The doc was fixed between 1.8.5-pre1 and 1.8.5-pre2. Form that it
> seems that the docs on ruby-doc are rather old, and not exactly 1.8.5
> ones as they say...
>
> [1]
http://www.ruby-lang.org/cgi-bin/cvsweb.cgi/ruby/string.c?rev=1...
> content-type=text%2Fplain
Excellent, thanks. m.
--
matt neuburg, phd = matt@tidbits.com,
http://www.tidbits...
Tiger -
http://www.takecontrolbooks.com/tiger-custom...
AppleScript -
http://www.amazon.com/gp/product/...
Read TidBITS! It's free and smart.
http://www.t...
Servizio di avviso nuovi messaggi
Ricevi direttamente nella tua mail i nuovi messaggi per
match with string instead of regexp fails
Inserendo la tua e-mail nella casella sotto, riceverai un avviso tramite posta elettronica ogni volta che il motore di ricerca troverà un nuovo messaggio per te
Il servizio è completamente GRATUITO!
x
Login to ForumsZone
Login with Google
Login with E-Mail & Password