Filip Jursik schreef:
> $text = "first first second third";
> $text =~ /(first.*?third)/;
> print $1;
>
> gives me
>
> "first first second third"
>
> as a result instead of expected
>
> "first second third"
The match starts at the first possible position, or in other words: *?
doesn't look back.
To match the last 'first' in a series of 'first's, you need to express
that you don't allow a 'first' after it.
One way to do that:
perl -le '
$_ = q{first first second third} ;
print /(first(?!.*first).*third)/
'
but that would fail with q{first first second third first}
--
Affijn, Ruud
"Gewoon is een tijger."
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>