Hi Nisbo,
preg_replace("/www.domain.([a-z]{2,3})/datei(.*)&guterparameter=(.*)&(.*)/","<b>[URL]www.domain.\1/datei?guterparameter=\3[/URL]</b>",$ref);
echo $ref."<br>".$ref2;[/PHP]gibt mir noch das aus:
[CODE]http://www.domain.de/datei?guterparameter=das_hier_soll_urbrig_bleiben&bla=blub[/CODE]
Nun, überlegen wir mal - in deinem RegEx hast du guterparameter=(.*)& stehen (das = musst du übrigens nicht escapen, sofern du es nicht als Delimiter verwendest).
Das .* sucht sich natürlich immer _so viel wie möglich_! Das ist das Grundprinzip von regulären Ausdrücken - du darfst bzw. kannst an dieser Stelle also nicht .* verwenden, weil der Punkt ja für beliebige Zeichen passt.
Da die Parameter durch & getrennt sind musst du sagen „beliebig viele Zeichen außer &“ - das geht in regulären Ausdrücken über Zeichenklassen:
guterparameter([^&]*)&
Passe es auf diese Weise an, alles was danach ist kannst du dann sogar noch entfernen und es sollte funktionieren.
MfG, Dennis.