2009-05-08 8 views

Répondre

8

Essayez quelque chose comme ceci:

use Regexp::Common qw /URI/; 

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

La clé ici utilise Regexp :: Common :: URI qui a probablement une URL plus approfondie matcher que tout ce que je pouvais trouver. Aussi, je fais un negative lookahead assertion à la fin pour m'assurer que l'URL n'est pas déjà dans un lien. Cette dernière partie est pas tout à fait complet, car il est possible que quelqu'un pourrait faire quelque chose comme ceci:

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

Pour ce faire correctement, vous aurez besoin pour analyser l'ensemble du texte de soumission et remplacer uniquement par urls qui ne sont pas déjà partie d'un lien.

+0

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

Questions connexes