Einfache Texte finden

Soll lediglich ein fester Text gefunden werden beziehungsweise sich irgendwo im Suchmuster befinden, so brauch dieser nur als Klartext im Suchmuster angegeben werden.

So trifft zum Beispiel der Reguläre Ausdruck #hund# auf jede Textstelle hund zu.

Dabei ist zu beachten, dass zu findene Zeichen, die auch eine Funktion als Metazeichen haben, mittels eines Backslashs maskiert werden müssen, um sie von ihrer Funktion als Metazeichen zu befreien.

Der Reguläre Ausdruck #\*\*\*# trifft auf den Text *** zu. Die Sterne wurden hier maskiert, da sie auch eine Funktion als Quantifier haben, die hier aber nicht gewünscht sein soll.

Performancevergleich Stringfunktionen/Reguläre Ausdrücke

An dieser Stelle soll noch darauf hingewiesen werden, dass für simples Finden und/oder Ersetzen von feststehendem Klartext die String-Funktionen von PHP verwendet werden sollten. Diese sind für solche Zwecke performanter und besser geeignet.

So braucht dieser Code, <?PHP if (strpos('Dies ist ein Test''Test') !== false) $gefunden TRUE; ?> der das Wort Test im Text Dies ist ein Test findet, mittels Stringfunktion bei 1.000.000 Wiederholungen circa 3.325s, während die selbe Funktionalität per PCRE <?PHP if (preg_match('#Test#''Dies ist ein Test')) $gefunden TRUE; ?> ungefähr 5.667s benötigt. Dies sind immerhin 70% mehr. Nun könnte man argumentieren, dass bei einzelner Ausführung der Unterschied nur äußerst gering sei, Kleinvieh macht - wie wir wissen - jedoch auch Mist.

Verwandte Themen
Kapitelnavigation