Reg Exp

Discussion in 'Ruby' started by Dipesh Batheja, Apr 15, 2008.

  1. 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-forum.com/.
     
    Dipesh Batheja, Apr 15, 2008
    #1
    1. Advertising

  2. On Tue, Apr 15, 2008 at 2:59 PM, 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?


    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.
     
    Jesús Gabriel y Galán, Apr 15, 2008
    #2
    1. Advertising

  3. 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
    > <> 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-forum.com/.
     
    Dipesh Batheja, Apr 15, 2008
    #3
  4. [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 <>
    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-forum.com/.
    >
    >



    --
    Jeff Schoolcraft
    http://thequeue.net/blog/
    Microsoft MVP
     
    Jeff Schoolcraft, Apr 15, 2008
    #4
  5. 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/products/show/1

    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/products/show/1

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


    --
    Posted via http://www.ruby-forum.com/.
     
    Dipesh Batheja, Apr 15, 2008
    #5
  6. 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 <>
    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
    > > <> 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=
     
    Jeff Schoolcraft, Apr 15, 2008
    #6
  7. Dipesh Batheja

    Kyle Guest

    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" <>
    wrote:
    > I don't think you'll be able to do what you want with just a regex pattern=
     
    Kyle, Apr 15, 2008
    #7
  8. Dipesh Batheja

    fedzor Guest

    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!
     
    fedzor, Apr 18, 2008
    #8
  9. 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.rubypal.com for details and updates!
     
    David A. Black, Apr 18, 2008
    #9
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Andrew Rowland

    Reg exp: matching relative path only.

    Andrew Rowland, Aug 2, 2003, in forum: Perl
    Replies:
    0
    Views:
    1,159
    Andrew Rowland
    Aug 2, 2003
  2. psk

    Newbie-Reg Exp

    psk, Jan 16, 2004, in forum: Perl
    Replies:
    2
    Views:
    1,378
    Gunnar Hjalmarsson
    Jan 19, 2004
  3. PerlE

    Reg Exp Help

    PerlE, Jan 30, 2004, in forum: Perl
    Replies:
    0
    Views:
    520
    PerlE
    Jan 30, 2004
  4. Ken Chesak

    reg exp

    Ken Chesak, Aug 26, 2004, in forum: Perl
    Replies:
    0
    Views:
    643
    Ken Chesak
    Aug 26, 2004
  5. Ken Chesak

    reg exp

    Ken Chesak, Aug 30, 2004, in forum: Perl
    Replies:
    5
    Views:
    663
Loading...

Share This Page