PHP4-Forum
Forum | Befehle | MySQL | Beispiele | Newsletter | Suche | Home

Untermenü

Erweitertes
Reguläre Ausdr.
MIME-Mail
PHP und WAP
Crontab
HTTP-Header
Klassen, Objekte

Zu dieser Seite

Reguläre Ausdr.
Grundlagen I
Grundlagen II
ereg() und eregi()
Beispiel zu ereg()
ereg_replace()
Schneller mit PCRE
Durch Perl weniger Prozessorlast

Seit PHP-Version 3.0.9 kann man unter PHP nun auch die Perl Kompatiblen Regulären Ausdrücke (PCRE) verwenden. Ihr Vorteil ist: sie sind ausgereifter und dadurch sehr viel schneller als die EREG-Funktionen (in manchen Fällen sogar bis zu 200x schneller). Außerdem sind PCRE sehr flexibel. Sie verstehen nicht nur die meist unter Perl verwendete Syntax, sondern man kann auch die Syntax der Regulären Ausdrücke verwenden, die in diesem Kapitel erklärt wurde.

preg_match


preg_match ist das Äquivalent zu ereg() und eregi(). Die Syntax ist gleich. Jedoch muss hier der Reguläre Ausdruck durch Gleichheitszeichen = eingeschlossen werden. Das bedeutet also, dass das Gleichheitszeichen ein weiteres Sonderzeichen ist, dass im REGEX nicht genutzt werden darf. Daher muss jedes dort vorkommendes Gleichheitszeichen durch einen Backslash \ auskommentiert werden.

Folgende Befehle sind also gleichbedeutend:

ereg("^([[:digit:]]*).([[:digit:]]{2})$","15.65",$regs);
preg_match("=^([[:digit:]]*).([[:digit:]]{2})$=","15.65",$regs);


Um die Groß- und Kleinschreibung zu ignorieren (wie das bei eregi() der Fall ist), wird nach dem letzten Gleichheitszeichen ein i eingefügt:

preg_match("=php=i","Ich finde PHP toll");

Außerdem sollte der Parameter s verwendet werden. Dieser bewirkt nämlich, dass der Punkt . auch Zeilenumbrüche beinhaltet. Und in den meisten Fällen ist dies sehr nützlich, obwohl man es auch manchmal nicht benötigt. Also vorher übelegen ;-)

preg_replace


preg_replace ist das Äquivalent zu ereg_replace() und eregi_replace(). Die Syntax ist gleich. Auch hier müssen die oben beschriebenen Hinweise beachtet werden. Folgende Befehle währen also gleichbedeutend:

echo eregi_replace("(PHP)[[:digit:]]?", "\\14", "php3 ist toll");
echo preg_replace("=(PHP)[[:digit:]]?=si", "\\14", "php3 ist toll");


Wie man sieht, sind die PREG-Befehle gar nicht viel komplizierter als die EREG-Befehle. Aber es lohnt sich, diese einzusetzen. Das mussten wir leider (oder zum Glück) feststellen...
Dienstleistungen | Werbung | Impressum | Sitemap | Kontakt | Email © 1999 - 2009 | Last Update: 23.02.2001