String method that takes in a regex

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

Hi –

On Thu, 25 Oct 2007, 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).

I think the idea is that as long as matching methods return either
something or nil, you can always use them in conditionals, so they
might as well return something that might have some other use.

David

On 10/24/07, Parv G. [email protected] 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.denhaven2.com/

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

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 W.

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 K.

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

On 10/24/07, Gregory S. [email protected] wrote:

=> 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.

On 10/24/07, Gregory S. [email protected] wrote:

=> 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-cargo-culting


Rick DeNatale

My blog on Ruby
http://talklikeaduck.denhaven2.com/

On 10/24/07, Rick DeNatale [email protected] wrote:

/foo/ === ‘foo’
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 :frowning:
Robert