[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

string method that takes in a regex

Parv G.

10/24/2007 6:07:00 PM

Hi,
Is there a string method that takes in a regular expression AND returns
a boolean value?

Looking at the documentation i can't find a method that meets my
requirements (very surprising).

Thanks,
ParvG
--
Posted via http://www.ruby-....

9 Answers

David A. Black

10/24/2007 6:13:00 PM

0

Rick DeNatale

10/24/2007 6:15:00 PM

0

On 10/24/07, Parv G. <ghotrapa@yahoo.com> wrote:
> Hi,
> Is there a string method that takes in a regular expression AND returns
> a boolean value?
>
> Looking at the documentation i can't find a method that meets my
> requirements (very surprising).

String#match takes a regexp and returns either nil or a MatchData.

In Ruby nil is a boolean false, and anything other than nil or false
is a boolean true, so this effectively does return a boolean value.


--
Rick DeNatale

My blog on Ruby
http://talklikeaduck.denh...

Parv G.

10/24/2007 6:21:00 PM

0


>
> In Ruby nil is a boolean false, and anything other than nil or false
> is a boolean true, so this effectively does return a boolean value.
>

I did not know this; this is very helpful.

Thanks David and Rick.

Parv
--
Posted via http://www.ruby-....

Randy Kramer

10/24/2007 6:26:00 PM

0

On Wednesday 24 October 2007 02:06 pm, Parv G. wrote:
> Is there a string method that takes in a regular expression AND returns
> a boolean value?
>
> Looking at the documentation i can't find a method that meets my
> requirements (very surprising).

Look at the match method (or =~ )--since nil is false and anything else is
true, I would think that you could use it.

Randy Kramer

Gary Wright

10/24/2007 6:27:00 PM

0


On Oct 24, 2007, at 2:06 PM, Parv G. wrote:

> Hi,
> Is there a string method that takes in a regular expression AND
> returns
> a boolean value?
>
> Looking at the documentation i can't find a method that meets my
> requirements (very surprising).

str = "abc"
str[/bc/] # "bc" which evaluates as true
str[/bd/] # nil which evaluates as false

Gary Wright

Gregory Seidman

10/24/2007 6:38:00 PM

0

On Thu, Oct 25, 2007 at 03:06:36AM +0900, Parv G. wrote:
> Hi,
> Is there a string method that takes in a regular expression AND returns
> a boolean value?
>
> Looking at the documentation i can't find a method that meets my
> requirements (very surprising).

% irb
>> /foo/ === 'foo'
=> true
>> /foo/ === 'bar'
=> false
>>

> Thanks,
> ParvG
--Greg


Robert Dober

10/24/2007 6:42:00 PM

0

On 10/24/07, Gregory Seidman <gsslist+ruby@anthropohedron.net> wrote:
> On Thu, Oct 25, 2007 at 03:06:36AM +0900, Parv G. wrote:
> > Hi,
> > Is there a string method that takes in a regular expression AND returns
> > a boolean value?
> >
> > Looking at the documentation i can't find a method that meets my
> > requirements (very surprising).
>
> % irb
> >> /foo/ === 'foo'
> => true
> >> /foo/ === 'bar'
> => false
> >>
This is indeed a very useful idiom.
Just for the records you are talking about Regexp#=== here, not a String method.

R.
--
what do I think about Ruby?
http://ruby-smalltalk.blo...

Rick DeNatale

10/24/2007 6:53:00 PM

0

On 10/24/07, Gregory Seidman <gsslist+ruby@anthropohedron.net> wrote:
> On Thu, Oct 25, 2007 at 03:06:36AM +0900, Parv G. wrote:
> > Hi,
> > Is there a string method that takes in a regular expression AND returns
> > a boolean value?
> >
> > Looking at the documentation i can't find a method that meets my
> > requirements (very surprising).
>
> % irb
> >> /foo/ === 'foo'
> => true

although

'foo' === /foo/
=> false

=== is non-symmetric.

That said, I think that there are very few cases in Ruby where you
actually need an instance of either TrueClass or FalseClass, those
being when you want to use the non-shortcut methods

| instead of ||
and
& instead of &&

or the exclusive or operator ^

In these few cases you might have to do (expr == true) & expr2
instead of just expr & expr2

There's also !!expr but be careful with that
http://www.therailsway.com/2007/8/1/dangers-of-car...

--
Rick DeNatale

My blog on Ruby
http://talklikeaduck.denh...

Robert Dober

10/24/2007 8:41:00 PM

0

On 10/24/07, Rick DeNatale <rick.denatale@gmail.com> wrote:
> On 10/24/07, Gregory Seidman <gsslist+ruby@anthropohedron.net> wrote:
> > On Thu, Oct 25, 2007 at 03:06:36AM +0900, Parv G. wrote:
> > > Hi,
> > > Is there a string method that takes in a regular expression AND returns
> > > a boolean value?
> > >
> > > Looking at the documentation i can't find a method that meets my
> > > requirements (very surprising).
> >
> > % irb
> > >> /foo/ === 'foo'
> > => true
>
> although
>
> 'foo' === /foo/
> => false
>
> === is non-symmetric.
>
> That said, I think that there are very few cases in Ruby where you
> actually need an instance of either TrueClass or FalseClass, those
> being when you want to use the non-shortcut methods
>
> | instead of ||
> and
> & instead of &&
>
> or the exclusive or operator ^
>
> In these few cases you might have to do (expr == true) & expr2
> instead of just expr & expr2
Hmm I prefer the !! idiom

!! exp1 & exp2

this gives however warnings if exp1 is a String :(
Robert
--
what do I think about Ruby?
http://ruby-smalltalk.blo...