Hallo Forum!
Ich habe mal wieder ein reguläres Ausdrucksproblem. Ich habe folgenden PHPCode:
PHP-Code:
preg_match_all ( "!\{red_(\w+?) (.*)\}(.*)\{/red_\w+\}!sU" , $inhalt , $treffer , PREG_SET_ORDER );
Mit diesem Code möchte ich allen Text, der in das Schema {red_xyz xyz}xyz{/red_xyz} herausfiltern, also ein klassisches BBCode Beispiel. Funktionieren tut das soweit ganz gut. Ich wollte jetzt den hinteren regulären Ausdruck (\w+) durch eine Rückreferenz auf den ersten Teil ersetzen, da das Script mir sonst ja auch sowas wie {red_text xyz}xyz{/red_link} rausfiltert, was natürlich nicht gewünscht ist. Wenn ich jetzt $1 in meinen Code einfüge, also folgendermaßen, findet er gar nichts mehr.
PHP-Code:
preg_match_all ( "!\{red_(\w+?) (.*)\}(.*)\{/red_$1\}!sU" , $inhalt , $treffer , PREG_SET_ORDER );
Ich komme irgendwie nicht drauf, was der Fehler ist, wie ich die Funktion auch umschreibe.
Vielen Dank schonmal,
Gruß Andreas