Vorwärts- und Rückwärtssuche ohne Backtracking

Aktualisiert: November 2007

Bei positivem Lookahead und Lookbehind findet keine Rückverfolgung statt. Das bedeutet, dass ihre Inhalte genauso behandelt werden wie die Inhalte einer nicht zurückverfolgenden (?> )-Gruppe.

Da Lookahead und Lookbehind immer eine Breite von Null haben, ist der Rückverfolgungsmechanismus nur erkennbar, wenn aufzeichnende Gruppen innerhalb einer positiven Voraus- bzw. Rückschau auftauchen. Ein Beispiel: Mit dem Ausdruck "(?=(a*))\1a" wird niemals eine Übereinstimmung gefunden, da die innerhalb des Lookahead definierte Gruppe 1 jedes Auftreten des Zeichens "a" beansprucht, der folgende Ausdruck "\1a" jedoch ein weiteres "a" erfordert, um ein Suchergebnis zu erhalten. Da der Lookaheadausdruck nicht zurückverfolgt wird, wird kein neuer Versuch für Gruppe 1 mit weniger Vorkommnissen des Zeichens "a" gestartet.

Weitere Informationen zu Gruppierungs-, Lookahead- und Lookbehindkonstrukten finden Sie unter Gruppierungskonstrukte.

Siehe auch

Weitere Ressourcen

Reguläre Ausdrücke von .NET Framework