So simpel ist dein Beispiel gar nicht - zumindest nicht in
einer regexp - da Du
verschiedene Ersatzzeichen ( das
[ und das
] hast....
Machen wir's simpel und teilen es in 2 regexp auf:
$Zeile = preg_replace( "/</", "[", $Zeile ); ersetzt die
< durch die
[
$Zeile = preg_replace( "/>/", "]", $Zeile ); ersetzt die
> durch die
]
Für die kompliziertere Variante in
einer regexp müssen wir etwas tiefer in die Trickkiste greifen. Wie man sich vielleicht erinnert, kann ich die Treffer mittels $1, $2 usw weiterverwerten. Der Trick ist nun, daß ich mir ein assoziatives Array mit den Fundstücken und den dazu passenden Ersatzzeichen anlege:
$Ersatz["<"] = "[";
$Ersatz[">"] = "]";
Dieses Array benutze ich nur als Ersetz-Variable, in dem ich das "Fundstück" als Index angebe:
$Zeile = preg_replace( "/([<>])/", $Ersatz[$1], $Zeile );
Jetzt brauch aber mal kurz die Hilfe der PHP-Profs: ersetzt preg_replace
automatisch alle Pattern oder muss noch ein Pattern-Modifier angegeben werden? Hab da jetzt nix zu gefunden...
PS: Getestet hab ich's nur unter Perl - ich hoffe mal, das ich meine rudimentären PHP-Kentnisse richtig umgesetzt habe....
