[quote=cbxk1xg,03.12.2003, 18:13]
$line =~ s-\www.(.*?)\.(.*?)-<a href="http://www.$1" target ="_blank">http://www.$1</a>-g
[/quote]
.* sucht nach null oder mehr Zeichen, wobei durch das ? danach moeglichst wenig Zeichen gefunden werden (also Null).
\w steht fuer ein Wortzeichen (a-zA-Z0-9_); bei dir waere also auch 3ww gueltig.
www.: der Punkt steht fuer ein beliebiges zeichen, also auch wwwx
Du verwendest zwar $1, nicht jedoch $2
was passiert bei deinem Code, wenn da
http://xwwote.
hereinkommt?
Ein klein wenig koenntest du den Scanner folgendermaszen verbessern:
$line =~ s~
www # am anfang www: was passiert mit WWW ? oder board?
\. # danach ein Punkt
(.+?) # danach ein oder mehrere Zeichen, aber moeglichst wenig
\. # danach ein Punkt
(.+?) # danach ein oder mehrere beliebige Zeichen, moeglichst wenig
\b # danach eine Wortgrenze
~<a href="[URL=http://www.$1.$2]http://www.$1.$2"[/URL] target="_blank">www.$1.$2</a>~xg;
Das mit der wortgrenze ist auch keine Idealloesung, weil da z.B. urls wie www.xyz.de/irgendwas nur www.xyz.de erkennen wuerde.\n\n
<!--EDIT|Strat|1070491132-->