Hallo Sebastian!
So sollte es funktionieren:
$text=~s/(http://.*?.de)/<p><a target='_blank' href='$1'>$1</a></p>/;oh ja stimmt, aber man sollte doch folgendes benutzen
$text=~s/(http://.*)\ /<p><a target='_blank' href='$1'>$1</a></p>/g;
Der String, auf den die RegExp angewandt werden soll lautet:
$text = "Das ist ein Test. http://www.test.de TOLL";
Mit (http://.*) speicherst Du "http://www.test.de TOLL" in $1.
Die Ausgabe ist dann ....href='http://www.test.de TOLL'>http://www.test.de TOLL</a></p>.
Deshalb braucht man das Ende der URL, also hier .de. Das Fragezeichen ist beim gegenständlichen
String nicht notwendig, hat aber den Sinn, Perl dazu zu bringen, beim ersten .de aufzuhören.
Probier einfach einmal dieses kleine Perl-Script aus:
#!/usr/bin/perl
$text = "Das ist ein Test. http://www.test.de TOLL ";
$text=~s/(http://.*?.de)/<p><a target='_blank' href='$1'>$1</a></p>/;
print ("$text\n");
Nimm dann das Fragezeichen weg und probier das Script mit dem String
$text = "Das ist ein Test. http://www.test.de TOLL und jetzt kommt noch ein .de";
und Du wirst sehen was ich meine.
Grüße
saltun