O'Reilly logo

Reguläre Ausdrücke Kochbuch by Steven Levithan, Jan Goyvaerts

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

2.14 Unnötiges Backtracking vermeiden

Problem

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.

Lösung

\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 ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required