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
- Letzte Änderung: 08.01.2012, 12:31:18
- © 2003 - 2012 nophia web