Hallo, Christof,
zu regulären Ausdrücken kann ich Dir wenig sagen, da ich sie nicht ganz durchschaue.
Ich habe aber mal mit Hilfe von Codebestandteilen aus dem Netz eine Funktion zusammengebastelt, die Links und e-mail-Adressen klickbar macht. Vielleicht kannst Du damit was anfangen ...
Grüße,
Sebastian
-------------------- schnipp --------------------
function makeClickable($str)
{
// merged from several sources
// please send improvements to
// sebastian.becker@berlin.de
// add http:// to www.
// $str = str_replace(' www.',' http://www.',$str);
$str = str_replace('www.','http://www.',$str);
$str = str_replace('http://http://','http://',$str);
// pattern
$pattern = '#(^|[^"=]{1})(http://|https://|ftp://|mailto:|news:)([^\s<>]+)([\s\n<>]|$)#sm';
// add <a href=""></a> to links, but not in <a></a>
$str = preg_replace($pattern,"\1<a href="\2\3" target="_blank">\3</a>\4", $str);
// replace mail addresses
$str = eregi_replace("(([a-z0-9-.]+)@([a-z0-9-.]+).([a-z0-9]+))","<a href="mailto:\0">\0</a>",$str);
return $str;
}
echo makeClickable("Die Domains www.google.com und www.google.de (beide ohne http://) sollten eigentlich <a href="http://www.google.de" target="_blank">www.google.de</a> (im Ursprungstext bereits verlinkt) und http://www.google.de (im Ursprungstext beide mit http://) geschrieben werden.<br><br>Post bitte an info@google.com<br><br>www, www., ftp., mailto:");
?>