At 09:36 PM 6/13/02 -0700, Paul Makepeace wrote:
>Can someone explain the first result?
>
>$ perl -wle '$_ = "small - medium - large";
> /- (.+?)$/; print $1;
> /^(.+?) -/; print $1;
> /.*- (.+?)$/; print $1'
>medium - large
>small
>large
>$
>
>I was expecting just "large" with the non-greedy match. In light of
>result #1, I contrived #3, but I'm not completely sure why it's
>necessary.
You're suffering from regex myths. Take two Jeff Friedls and call us in
the morning :-)
Considering #1:
-<SPC> Move from left to right until you find those characters
..+? Match at least one character that isn't a newline,
followed by as few of them as necessary for the
rest of the match to succeed
$ Match end of string or newline at end of string
Clearer now?
I would probably have written
/([^-]+)$/
--
Peter Scott
Pacific Systems Design Technologies
http://www.perldebugged.com/