2009-05-08 18 views

Antwort

8

versuchen, etwas wie folgt aus:

use Regexp::Common qw /URI/; 

$text =~ s|($RE{URI}{HTTP})(?!</a>)|<a href="$1">$1</a>|g 

Der Schlüssel hier ist Regexp mit :: Allgemeine :: URI, die wahrscheinlich eine gründlichere url Matcher als alles, was habe ich mit kommen konnte. Ich mache auch eine negative lookahead assertion am Ende, um sicherzustellen, dass die URL nicht bereits in einer Verbindung ist. Der letzte Teil ist nicht gerade gründlich, da es möglich ist, dass jemand so etwas tun könnte:

<a href="http://www.mysite.com">http://www.mysite.com is my website</a> 

Um dies zu tun, richtig müssen Sie den gesamte Vorlage Text analysieren und nur URLs ersetzen, die nicht bereits sind Teil eines Links.

+0

Siehe http://stackoverflow.com/questions/819144/stripping-an-url-from-a-text/819972#819972 –

Verwandte Themen