Verwenden Sie Methoden der String-Klasse wie zum Beispiel
indexOf()
,
substr()
oder
substring()
anstelle von regulären Ausdrücken, um grundlegende Vorgänge zum Suchen und Extrahieren von Strings auszuführen.
Bestimmte Operationen, die mithilfe regulärer Ausdrücke ausgeführt werden, lassen sich auch mit Methoden der String-Klasse ausführen. Um zum Beispiel herauszufinden, ob ein String einen anderen String enthält, können Sie entweder die
String.indexOf()
-Methode oder einen regulären Ausdruck verwenden. Wenn jedoch eine Methode der String-Klasse verfügbar ist, erfolgt die Ausführung schneller als mit dem entsprechenden regulären Ausdruck und es braucht kein weiteres Objekt erstellt zu werden.
Verwenden Sie eine nicht erfassende Gruppe („
(?:xxxx)
“) anstelle einer Gruppe („
(xxxx)
“) in einem regulären Ausdruck, wenn Sie Elemente gruppieren möchten, ohne den Inhalt der Gruppe im Ergebnis zu isolieren.
In regulären Ausdrücken, die nicht zu komplex sind, gruppieren Sie häufig Teile des Ausdrucks. Im folgenden regulären Ausdruck wird zum Beispiel mit Klammern eine Gruppe um den Text „ab“ erstellt. Dementsprechend gilt der Quantifizierer „+“ für die ganze Gruppe statt nur für ein einzelnes Zeichen:
/(ab)+/
Standardmäßig wird der Inhalt jeder Gruppe „erfasst“. Sie können den Inhalt jeder Gruppe in Ihrem Muster als Teil des Ergebnisses der Ausführung des regulären Ausdrucks abrufen. Das Erfassen dieser Gruppenergebnisse dauert länger und benötigt mehr Arbeitsspeicher, da Objekte erstellt werden, die die Gruppenergebnisse enthalten. Alternativ dazu können Sie die nicht erfassende Gruppensyntax verwenden, indem Sie ein Fragezeichen und einen Doppelpunkt nach der öffnenden Klammer eingeben. Diese Syntax legt fest, dass sich die Zeichen als Gruppe verhalten, aber nicht für das Ergebnis erfasst werden:
/(?:ab)+/
Die Verwendung der nicht erfassenden Gruppensyntax ist schneller und benötigt weniger Arbeitsspeicher als die Verwendung der standardmäßigen Gruppensyntax.
Verwenden Sie ggf. einen alternativen regulären Ausdruck, wenn der zunächst verwendete nicht gut funktioniert.
Manchmal lassen sich mehrere reguläre Ausdruckmuster verwenden, um dasselbe Textmuster zu finden oder zu identifizieren. Aus bestimmten Gründen werden bestimmte Muster schneller ausgeführt als andere. Wenn Sie feststellen, dass ein regulärer Ausdruck dazu führt, dass Ihr Code langsamer als nötig ausgeführt wird, sollten Sie reguläre Ausdrücke mit Alternativmustern in Betracht ziehen, die dasselbe Ergebnis liefern. Testen Sie diese alternativen Ausdruckmuster, um herauszufinden, welches am schnellsten ist.
|
|
|