preg_replace an unterschiedlicher Stelle

Every_b

Mitglied
Hola Leute :)

Habe mal wieder ein kleineres Problem bei dem ich aber stocke, ich hoffe jemand von euch hat eine Lösung parat oder kann mir den nötigen Denkanstoß liefern :)

PHP:
$str = $programm[4];
$new_str = preg_replace("#\[(.*)\]#", "<span style=\"color:#ff0000;\">$1</span>", $str); 
echo $new_str;

Der $str Variable übermittele ich einen Formularwert, mit dem ich dann über preg_replace erreichen will, dass wenn eine bestimmte Eingabe zwischen [ und ] geschrieben wird, diese Eingabe sich rot färbt.
Das fuktioniert an und für sich auch, in folgender Form:

Eingabe:
Dieses [Wort] ist Rot gefärbt.

Ausgabe:
Dieses Wort ist Rot gefärbt.

Wenn ich jedoch zwei Strings färben will, funktioniert das ganze nicht. Es sieht dann so aus:

Eingabe:
Dieses [Wort] und dieses [Wort] sollen rot gefärbt sein.

Ausgabe:
ieses Wort] und dieses [Wort sollen rot gefärbt sein.

Hat jemand eine Idee, wie ich diesen Fehler behebe? Ich hoffe sehr.. verzweifle schon an Ideenlosigkeit.
Danke euch im vorraus.

Gruß.
 
Tausend Dank Gumbo - hast mich mal wieder gerettet :)
Hake hier erledigt ab, aber eine Frage zum Schluss: Hast du vllt. eine Ressource für mich, wo ich selbst auf solche Suchmuster komme? Für mich sind die im Moment rein kryptisch.

Danke nochmal wegen der Problemlösung!
Gruß.
 
Zurück