LX: preg_replace

Beitrag lesen

Reguläre Ausdrücke sind eine wunderbare Lösung für reguläre Probleme, also fasse ich mal die Vermutungen darüber zusammen, was an Deinem Problem regulär ist: Du möchtest wohl alle Text-Teile, die in geschweiften Klammern stehen, ersetzen. Da Du keine Informationen darüber kundgibst, mit was ersetzt werden soll, gehe ich einfach mal davon aus, dass es entfernt (also durch nichts ersetzt) werden soll.

Die Syntax des dazu notwendigen Befehls ist einfach:

$ergebnis = preg_replace([suchmuster], [ersetzung], [eingabe]);

Die Eingabe sollte klar sein. Als Ersetzung nehmen wir gemäß der oben angestellten Vermutung einfach den leeren String "". Nun zum Suchmuster. Geschweifte Klammern sind in diesen RegExp besondere Zeichen, müssen also mit einem "" eingeleitet werden. Mit dem "." kann man beliebige Zeichen treffen und mit dem "*" beliebig viele des vorangestellten Zeichen - allerdings muss man noch ein "?" hintenanstellen, damit dieser Multiplikator nicht zu gierig wird. Das Suchmuster sieht demnach folgendermaßen aus:

"/{.*?}/"

und damit der Befehl:

$ergebnis = preg_replace("/{.*?}/", "", $eingabe);

Gruß, LX

--
RFC 1925, Satz 2: Egal, wie fest man schiebt, ganz gleich, wie hoch die Priorität ist, man kann die Lichtgeschwindigkeit nicht erhöhen.