Hello,

Perl beginner here. I am having difficulty with a regular expression
that uses non-greedy matches. Here is a sample code snippet:

$test = "Yea 123xrandomYea 456xdumdumNay 789xpop";
while ($test =~ /Yea (.*?)x.*?(?:Nay (.*?)x)?/g)
    {
        print "$1\n";
        print "$2\n";
    }

The idea is that every 'phrase' is delimited with an 'x' and there are
random letters between phrases.

I expect to see:

123

456
789

But instead I get:

123

456

Why don't I get the second part of the regular expression?

Thanks!


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to