[lnkForumImage]
TotalShareware - Download Free Software

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


 

Dipesh Batheja

4/15/2008 12:59:00 PM

Can somebody hep me with a very simple regular expression. I want to
write an regex which if matches a specific string should return false.
for example:
if i have string "Hello world", and i want to say, if you find "hello"
in this string then return false. Can someone explain how to write this?
--
Posted via http://www.ruby-....

8 Answers

Jesús Gabriel y Galán

4/15/2008 1:10:00 PM

0

On Tue, Apr 15, 2008 at 2:59 PM, Dipesh Batheja
<dipesh_batheja@yahoo.com> wrote:
> Can somebody hep me with a very simple regular expression. I want to
> write an regex which if matches a specific string should return false.
> for example:
> if i have string "Hello world", and i want to say, if you find "hello"
> in this string then return false. Can someone explain how to write this?

Simple approach:

irb(main):007:0> a = "hello world"
=> "hello world"
irb(main):008:0> !(a =~ /hello/)
=> false
irb(main):009:0> !(a =~ /asdfsdf/)
=> true

Jesus.

Dipesh Batheja

4/15/2008 1:18:00 PM

0

Problem is i have function, which takes a regex as the parameter. I want
to pass this regex in such a way that the function returns false if the
string is matched and true if it isn't. I want the regex itself specify
that if it matches the given string then it is false otherwise true.

Jesús Gabriel y Galán wrote:
> On Tue, Apr 15, 2008 at 2:59 PM, Dipesh Batheja
> <dipesh_batheja@yahoo.com> wrote:
>> Can somebody hep me with a very simple regular expression. I want to
>> write an regex which if matches a specific string should return false.
>> for example:
>> if i have string "Hello world", and i want to say, if you find "hello"
>> in this string then return false. Can someone explain how to write this?
>
> Simple approach:
>
> irb(main):007:0> a = "hello world"
> => "hello world"
> irb(main):008:0> !(a =~ /hello/)
> => false
> irb(main):009:0> !(a =~ /asdfsdf/)
> => true
>
> Jesus.

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

Jeff Schoolcraft

4/15/2008 1:22:00 PM

0

[Note: parts of this message were removed to make it a legal post.]

I'm not sure what you're going to gain from a regex if it's a specific
string and not a pattern.

irb(main):001:0> a = "Hello World"
=> "Hello World"
irb(main):002:0> !(a.include? 'Hello')
=> false
irb(main):003:0>

It seems you'd want to wrap that into a method to make the intent a little
more obvious

irb(main):011:0> def should_filter?(source, word)
irb(main):012:1> source.include? word
irb(main):013:1> end
=> nil
irb(main):014:0> should_filter?(a, 'Hello')

Just a thought.

to make the regex work as in your example though, you'd do this:
irb(main):021:0> !(a =~ /hello/i)
=> false

(case insensitive matching)

On Tue, Apr 15, 2008 at 8:59 AM, Dipesh Batheja <dipesh_batheja@yahoo.com>
wrote:

> Can somebody hep me with a very simple regular expression. I want to
> write an regex which if matches a specific string should return false.
> for example:
> if i have string "Hello world", and i want to say, if you find "hello"
> in this string then return false. Can someone explain how to write this?
> --
> Posted via http://www.ruby-....
>
>


--
Jeff Schoolcraft
http://thequeue...
Microsoft MVP

Dipesh Batheja

4/15/2008 1:36:00 PM

0

Ok let me try explain my situation a little bit.
I have default route in ROR environment.rb:
map.connect ':lang/:canonic/:controller/:action/:id

it matches paths like:
http://www.abc.com/en/acme/produ...

where :canonic is "acme" in this example

I have a specific case where :canonic cannot be "admin"

map.connect method take a key :requirements where I can specify a regex:
map.connect ':lang/:canonic/:controller/:action/:id, :requirement =>
{:canonic => /regex/ }

I need to write in the reg ex, in such a way, so that when something
like:

http://www.abc.com/en/admin/produ...

comes, it doesn't match the path.


I hope this helps in explaining my situation.




Jeff Schoolcraft wrote:
> I'm not sure what you're going to gain from a regex if it's a specific
> string and not a pattern.
>
> irb(main):001:0> a = "Hello World"
> => "Hello World"
> irb(main):002:0> !(a.include? 'Hello')
> => false
> irb(main):003:0>
>
> It seems you'd want to wrap that into a method to make the intent a
> little
> more obvious
>
> irb(main):011:0> def should_filter?(source, word)
> irb(main):012:1> source.include? word
> irb(main):013:1> end
> => nil
> irb(main):014:0> should_filter?(a, 'Hello')
>
> Just a thought.
>
> to make the regex work as in your example though, you'd do this:
> irb(main):021:0> !(a =~ /hello/i)
> => false
>
> (case insensitive matching)
>
> On Tue, Apr 15, 2008 at 8:59 AM, Dipesh Batheja
> <dipesh_batheja@yahoo.com>

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

Jeff Schoolcraft

4/15/2008 1:42:00 PM

0

I don't think you'll be able to do what you want with just a regex pattern.
The closest you could get is negative lookahead. You'd have to pull out th=
e
first character and use negative lookahead for the rest, it will probably
only work for simple strings.

irb(main):029:0> a =3D "Hello World"
=3D> "Hello World"
irb(main):030:0> a =3D~ /h(?!ello)/i
=3D> nil
irb(main):031:0> b =3D "Hel l o world"
=3D> "Hel l o world"
irb(main):032:0> b =3D~ /h(?!ello)/i
=3D> 0


On Tue, Apr 15, 2008 at 9:17 AM, Dipesh Batheja <dipesh_batheja@yahoo.com>
wrote:

> Problem is i have function, which takes a regex as the parameter. I want
> to pass this regex in such a way that the function returns false if the
> string is matched and true if it isn't. I want the regex itself specify
> that if it matches the given string then it is false otherwise true.
>
> Jes=FAs Gabriel y Gal=E1n wrote:
> > On Tue, Apr 15, 2008 at 2:59 PM, Dipesh Batheja
> > <dipesh_batheja@yahoo.com> wrote:
> >> Can somebody hep me with a very simple regular expression. I want to
> >> write an regex which if matches a specific string should return false=

Kyle

4/15/2008 4:12:00 PM

0

Match the route with /admin/ in the path first.

map.connect ':lang/admin/:controller/:action/:id

If it's matched, it won't go on and try to match the route that you
showed us.

This is really a RoR question.

-Kyle

On Apr 15, 8:42 am, "Jeff Schoolcraft" <jeffrey.schoolcr...@gmail.com>
wrote:
> I don't think you'll be able to do what you want with just a regex pattern=

fedzor

4/18/2008 2:46:00 AM

0


On Apr 15, 2008, at 8:59 AM, Dipesh Batheja wrote:
> Can somebody hep me with a very simple regular expression. I want to
> write an regex which if matches a specific string should return false.
> for example:
> if i have string "Hello world", and i want to say, if you find "hello"
> in this string then return false. Can someone explain how to write
> this?


use the TextualRegexp gem

-------------------------------------------------------|
~ Ari
Careful - I'm like Stallman with katanas!




David A. Black

4/18/2008 10:30:00 AM

0

Hi --

On Wed, 16 Apr 2008, Kyle wrote:

> Match the route with /admin/ in the path first.
>
> map.connect ':lang/admin/:controller/:action/:id
>
> If it's matched, it won't go on and try to match the route that you
> showed us.
>
> This is really a RoR question.

No, just an RoR answer :-)


David

--
Rails training from David A. Black and Ruby Power and Light:
INTRO TO RAILS June 9-12 Berlin
ADVANCING WITH RAILS June 16-19 Berlin
INTRO TO RAILS June 24-27 London (Skills Matter)
See http://www.r... for details and updates!