String zwischen 2 Zeichen löschen

Slin61

Mitglied
Ich habe ein kleines Problem, da ich mir nicht sicher bin, wie ich das am besten angehen soll. Aus einem beliebigen Text möchte ich Teile, die in geschweiften Klammern stehen löschen. Der Text kann folgendermaßen aufgebaut sein:

{ Zu löschender Text } Teil A { Zu löschender Text } Teil B oder
{ Zu löschender Text } Teil A { Zu löschender Text } oder
Teil A { Zu löschender Text } Teil B

Gibt es dafür eine gescheite Funktion oder muss ich das Ganze umständlich so regeln(Das ist nur ein Ansatz und kann Fehler enthalten):

PHP:
$return = str_replace("{", "|", $text, 1);
$return = str_replace("}", "|", $return, 1);
$return = explode("|", $return);

//usw...
 
Reguläre Ausdrücke.
PHP:
$pattern = "/\{[^\}]*\}/";
$replace = '';
$str = "{ Zu löschender Text } Teil A { Zu löschender Text } Teil B";
echo preg_replace($pattern, $replace, $str);

Weiteres findest du hier:
RegEx Tutorial
PHP Funktionsreferenz
 
Zuletzt bearbeitet:
PHP:
$pattern = "\{[^\}]*\}";
$replace = '';
$str = "{ Zu löschender Text } Teil A { Zu löschender Text } Teil B";
echo preg_replace($pattern, $replace, $str);
Ohne Delimiter dürfte das schwerlich funktionieren. :p

Als Inhalt kannst Du auch eine nicht gierige Wildcard nutzen.

PHP:
$str = '{ Zu löschender Text } Teil A { Zu löschender Text } Teil B';
echo preg_replace( '#\{.*?\}#', '', $str );

Grüße
 
Zurück