|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Andrey Sapozhnikov 2:5020/400 08 Apr 2002 18:58:19 To : vilfred Subject : Re: Замена URL на гиперссылку -------------------------------------------------------------------------------- vilfred wrote: > Andrey Titov <brandname@mtu-net.ru> пишет: > AT> Hужно сделать замену URL на гиперссылку. Однако, > AT> если в тексте несколько > AT> URL, то все они воспринимаются как один. Вроде > AT> это можно сделать с ?, но у > AT> меня чего-то не получается. Может кто поможет. > use Socket; А причем тут сокеты? > $page=~s!!!igsm; Это еще что такое и зачем? > $page=~s!\b([fh]t?tp://)(\S+)\b!<a href="$1$2" target=_new>$2</a>!igsm; Если уж проверять протокол, то проверять корректно. fttp - это что? Строка '"http://www.my.home.ru"-My home' даст неверный результат. Строка 'http://other.com/path?name=../' тоже. Модификаторы s и m тут лишние. > $page=~s!\b(ftp|www)(\S+)\b!<a href="$1$2" target=_new>$2</a>!igsm; > $page=~s!\b\((\d+\.){3})(\d+)(\S+)\b!<a href="$1$2" > target=_new>gethostbyaddr(inet_aton("$1$2"),AF_INET)</a>!igsme; > #поискать какая цифра возвращает числовой айпишник, либо $2 либо $3 и > #вообще что содержит ip, а что путь Hу тут и далее у меня вобще нет слов комментировать... Полный пипец. > $page=~s!\b((.*?)\.(.*?)\.){2}?(\w){3,2})(\S+)\b!<a href="$4 или $5 а > может и $2" target=_new>$6</a>!igsm; > #нужно посмотреть, в какой переменной живет адрес, много тут скобок... > > $page=~s/(.*) ([\w+\-\.]+\@[\w\-\.]+\.\w{2,3})(.*)!<a href="mailto:$2? > subject=question">$2</a>!igsm > > по моему эта штука видит любые айпишники, адреса и емыла. > > Если проморгал что, не виноват, ни один регексп не пробовал... > > Дима И не пробуй. Сотри так. Андрей --- ifmail v.2.15dev5 * Origin: Demos online service (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/5284988a5c15.html, оценка из 5, голосов 10
|