December 2009
Intermediate to advanced
560 pages
15h 5m
German
Das vorige Rezept beschreibt das Backtracking und den Unterschied zwischen gierigen und genügsamen Quantoren. In manchen Situationen ist Backtracking aber unnötig.
‹\b\d+\b› nutzt einen gierigen Quantor, ‹\b\d+?\b› einen genügsamen. Beide passen zum gleichen Objekt – einer Ganzzahl. Bei gleichem Ausgangstext werden beide die gleichen Übereinstimmungen finden. Jegliches Backtracking ist unnötig. Es soll nun dieser reguläre Ausdruck so umgeschrieben werden, dass explizit jedes Backtracking vermieden und der reguläre Ausdruck damit effizienter wird.
\b\d++\b
Regex-Optionen: Keine
Regex-Varianten: Java, PCRE, Perl 5.10, Ruby 1.9
Die einfachste Lösung ist die Verwendung eines possessiven Quantors. Aber ...