Christopher Hahn wrote:

> Hey,
> 
> I seem to be missing a piece of the puzzle....I want to define a character
> class ([])
> with atoms to (not) match involve negative look-ahead assertions.....but no
> joy.
> 
> I am reading a stream of text that may contain the two segments \\n and \"
> 
> I want to define a regexp that will match up to the first of either of
> these.
> 
> ...ie. something like ([^]*) where the character class is just the two
> sequences above.
> 
> ...but they are not characters at all, but strings, and so I wonder how to
> approach this.
> 
> Question: how best to do something to set 
> 
>    $1 == every character in the string up to and not including the first of
> either a \\n or a \"
> 
> That is all. (something like $strval =~ m/ (.* (?! \\ (?= \" | \\ (?= n) ) )
> )/x;)
> 
> I am going to use this regexp in a Parse::RecDescent Production, and have
> other Rules to 
> deal with the \\n and \" strings.
> 
> I am banging on this and will report when something good comes out of it,
> but please do
> chime in with any "best practices" that suggest themselves to you.  

I assume that \\n is actually 3 characters and not a newline.
It should be as simple as :

use strict;

foreach (
  '1: asd asdf adf asd \\n asd adf \" ad dasf dsaf ',
  '2: asd asdf adf asd \n asd adf \" ad dasf dsaf ',
  '3: asd asdf adf asd  asd adf \" ad dasf \\n dsaf ',
  '4: asd asdf adf asd  asd adf " ad dasf \n dsaf ',
  ) {
        if (/^(.*)(?:\\\\n|\\")/) {
                print "$1\n";
        }
}

__END__


-- 
  ,-/-  __      _  _         $Bill Luebkert    Mailto:[EMAIL PROTECTED]
 (_/   /  )    // //       DBE Collectibles    Mailto:[EMAIL PROTECTED]
  / ) /--<  o // //      Castle of Medieval Myth & Magic http://www.todbe.com/
-/-' /___/_<_</_</_    http://dbecoll.tripod.com/ (My Perl/Lakers stuff)
_______________________________________________
Perl-Win32-Users mailing list
[EMAIL PROTECTED]
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs

Reply via email to