quantifier minimizer

Do you have a question? Post it now! No Registration Necessary.  Now with pictures!

Threaded View

The ? symbol serves a number of purposes in PCRE.  The quantifer
minimizer usage is the one I'm currious about.  Specifically, the
output from a test script isn't what I'm expecting, and I'm wondering

Here's the script:

    echo preg_replace('#.*?b#','','aabbc');

Based on my understanding of the quantifer minimizer, the output should
be bc.  However, running this results in c being outputted.  As such, I
guess I'm just not understanding what ? as a quantifer minimizer is
supposed to do.  Could someone explain it to me?

Re: quantifier minimizer

yawnmoth wrote:

Quoted text here. Click to load it

Your understanding of <?> is probably spot on but you've just
overlooked the Kleene Star.  There's in fact two replacements
here.  The first is the one you expected, the replacement of
<aab> with the empty string.  The second is the replacement of
<b> - the second <b>.  The quantifier <*> means zero or more;
and so in the second replacement, <.*> matches nothing while
the <b> matches.


Site Timeline