Suchen und Ersetzen (Reguläre Ausdrücke)

Hallo!

Folgendes Problem:

In einem Text tauchen mehrer Urls mit dem A Href-Tag der folgenden Form auf ("_"-Zeichen nur hier im Posting absichtlich, damit Wer-weiss-was nicht als HTML interpretiert):

Beschreibung

soll umgeformt werden zu:

Beschreibung

Wahrscheinlich lässt sich das relativ leicht mit der Funktion str_replace(string occurance, string replacement, string string) machen, aber ich kriege es hier irgendwie nicht gebacken :frowning:

Kann mir jemand einen Tipp zu $occurance und $replacement nennen?

Auch alternative Lösungsvorschläge sind herzlich willkommen!

Vielen Dank im Vorraus,
Knut

Hallo Knut,

hier ist ein Beipiel, wie man das bewerkstelligen kann:

$string = "Jetzt kommt ein Link[google](%255C%2522http://www.google.de%255C%2522) und noch einer [yahoo](%255C%2522http://www.yahoo.de%255C%2522).";

$new\_string = preg\_replace("/()(.+?)()/i", "\\1\\2\\3", $string,-1 );  

Die \[zahl] sind sog. Backreferenzen, mit denen man auf die Ausdrücke in den Klammern zugreifen kann. Die „?“ verhindern die „Gefräßigkeit“ der .+

Noch Fragen?
Till

Hallo Till,

hier ist ein Beipiel, wie man das bewerkstelligen kann:

[…]

Danke, klappt super!

Die \[zahl] sind sog. Backreferenzen, mit denen man auf die
Ausdrücke in den Klammern zugreifen kann. Die „?“ verhindern
die „Gefräßigkeit“ der .+

Das Konzept mit den Backreferenzen kannte ich nicht, scheint allerdings ziemlich mächtig zu sein.

Noch Fragen?

Im Moment nicht :smile: Danke nochmal für deine Antwort.

Viele Grüße,
Knut