!!!
THANK YOU! :)
F.
Rob Dixon wrote:
Filip Jursik wrote:
Hi,
this
$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"
What am I doing wrong? I've expected the .*? to limit the wildcard
only to the string " second ".
Hi Filip
The regex engine will match one element at a time. Yours matches 'first',
then as few characters as possible, then 'third'. Only if the entire match
fails will it try finding 'first' in a different place. If you want your
expression to match at the last 'first' then just chew up as many
characters
as possible before testing for it:
my $text = "first first second third";
$text =~ /.*(first.*?third)/;
print $1;
OUTPUT
first second third
HTH,
Rob
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>