Perl extended regexp problems...

Wesley Darlington wesley at yelsew.com
Sun Sep 16 07:51:33 CDT 2001


On Sun, Sep 16, 2001 at 10:12:30AM +0100, Liyang Hu wrote:
>     liyang at sakura:~$ echo -e "foobar\ncowbar\ncowmoo" \
>         | perl -ne 'print if /(?<!=cow)bar/x'
>     foobar
>     cowbar
>     liyang at sakura:~$
> 
> Why?
> 
> I've read the FM, and my interpretation of that pattern is ``match
> all occurrences of `bar' not immediately prefixed by `cow'.''
> Shouldn't the answer be just `foobar'?
> 
> How am I supposed to do this? (given the constraint that you've
> only got one regex to accomplish the task...)

Do you have a superfluous equals sign in there...? /(?<!cow)bar/

Wesley.



More information about the Belfast-pm mailing list