Hallo Sebastian!
Folglich wäre der passende Parser für ihn folgender:
$text =~ s/(http://.*?)\ /<p><a target='_blank' href='$1'>$1</a></p>/g;
Leider funktioniert der nicht bei z.B.:
$text = "Das ist ein Test.<br>Link: http://www.test.de |Ende des Links|<br> Noch nen Link: http://www.test.domain.de";
hier wird nur der erste Link geändert, wie nicht der zweite?
Ganz einfach, der zweite Link hat kein Leerzeichen am Ende. Der Suchausdruck passt also nicht und die Substitution wird nicht durchgeführt.
Mach am Ende des Strings nach de ein Leerzeichen, dann funktioniert es.
Oder ohne Leerzeichen mit meiner ursprüngliche Variante (aber dann mit /g;).
Ohne Kenntnis aller Links in einem Text wird die Erstellung eines umfassend funktionierenden regulären Ausdrucks nur schwer möglich sein, das heißt, man muss ein auf alle Fälle passendes Muster finden.
Grüße
saltun