Qualcuno può spiegare Possessive Quantificatori a me? (Espressioni regolari)
Domanda
Sto leggendo il doc PCRE, e si riferisce al quantificatori possessivi , ma non in modo esplicito o in modo specifico le definiscono. So quello che un quantificatore avido è, e so quello che un quantifer pigro è. Ma possessivo?
Il pagina man PCRE sembra essere barare quando si utilizza il termine senza definirlo. La pagina man afferma esplicitamente che il termine quantificatori possessivi è stato definito in libro di Friedl. Beh, che è grande, ma io non ho il libro di Friedl, e nel leggere la pagina man, tra le righe, non riesco a capire cosa distingue quantificatori possessivi da golosi.
- ? = Zero o uno, avido
- ?? = Zero o uno, pigro
- ? + = Zero o uno, possessivo
- '+' = uno o più, avido
- +? = Uno o più, pigro
- ++ = uno o più, possessivo
Soluzione
Forse il posto migliore per iniziare è Regex Tutorial - possessivi Quantificatori :
Quando si discute la ripetizione operatori o quantificatori, ho spiegato la differenza tra avido e pigrizia ripetizione. Golosità e la pigrizia determinare l'ordine in cui il regex motore cerca le possibili permutazioni del pattern regex. Un avido quantificatore prima cercherà di ripetere il token come numero di volte possibile, e gradualmente rinunciare partite come il il motore marcia indietro per trovare una complessiva incontro. Un quantificatore pigro per prima ripetere il token come poche volte richiesto, e gradualmente espandere la corrispondere il motore fa scorrere l'espressione regolare per trovare una corrispondenza nel complesso.
quantificatori possessivi sono un modo per evitare che il motore regex da provare tutte le permutazioni. Ciò è utile soprattutto per le prestazioni motivi. È inoltre possibile utilizzare quantificatori possessivi per eliminare certi le partite.