It is not to hard to negate a regexp, though. Simply wrap it as negative look-ahead.

Konstantin

On Nov 7, 2011, at 23:04 , Suraj Kurapati wrote:

> 
> Issue #5588 has been updated by Suraj Kurapati.
> 
> 
> Note that I am not asking for the ability to take an arbitrary regexp andonstruct its negated form (that is a hard problem).  Instead, I am askingor a flag that simply inverts how a regexp is treated by the =~ and !~ operators (this is not a hard problem).  The negation flag should not change the Regexp#source of a regexp.
> 
> Thanks for your consideration.
> ----------------------------------------
> Feature #5588: add negation flag (v) to Regexp
> http://redmine.ruby-lang.org/issues/5588
> 
> Author: Suraj Kurapati
> Status: Open
> Priority: Normal
> Assignee: 
> Category: 
> Target version: 
> 
> 
> Please add a negation flag (v) to regexps which inverts them:
> 
>  "ruby" =~ /perl/v       #=> true   (turn on negation)
>  "ruby" !~ /perl/v       #=> false  (turn on negation)
>  "ruby" =~ /(?v:perl)/   #=> true   (turn on negation)
>  "ruby" !~ /(?v:perl)/   #=> false  (turn on negation)
>  "ruby" =~ /(?-v:perl)/  #=> false  (turn off negation)
>  "ruby" !~ /(?-v:perl)/  #=> true   (turn off negation)
> 
> The flag name "v" comes from the ex(1) command of the same name.
> 
> This has beneficial applications where it is sometimes difficult
> to construct what you want to match but much easier to construct
> what you *do not* want to match.  Having this negation built in
> the regexp itself would remove the need for us to change our 
> Ruby code to process a regexp in a different way.  
> 
> For example, suppose that you are passing a regexp to the `--name`
> command-line option of MiniTest.  This regexp tells MiniTest to
> only run those tests whose names match.  If Ruby had a negation
> flag on its regexps, then it would be suddenly trivial to make
> MiniTest skip certain tests by negating the regexp we pass in.
> 
> In this manner, we get a beneficial feature without ever changing
> our Ruby code (the codebase of MiniTest in this example).  :-)
> 
> Thanks for your consideration.
> 
> 
> -- 
> http://redmine.ruby-lang.org
>