Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
}
print $string;
Вот какой результат будет: здесь КаКиЕ-нибудь СлОвА и ЧтО-нибудь ЕщЕ...
Программа Urlify из книги Perl Cookbook:
$urls = '(http|telnet|gopher|file|wais|ftp)';
$ltrs = 'w';
$gunk = '/#~:.?+=&%@!-';
$punc = '.:?-';
$any = "${$ltrs}${$gunk}${$punc}";
while(<>){
s{($urls:[$any]+?)(?=[$punc]*[^$any]|$)} {<a href="$1">$1</a>}igox;
print;
}
Определение своих тегов:
$string = "some text, <uc>some uppercase text</uc>, than normal text <uc>and uppercase text again</uc>";
$string =~ s#<uc>((?:(?!</uc>).)*)</uc>#uc($1)#igmse;
print $string;
Результат такой: some text, SOME UPPERCASE TEXT, than normal text AND UPPERCASE TEXT AGAIN
Вложенные теги не поддерживаются.
Хочу сказать пару слов о «доставании» атрибутов из HTML-тегов, если вы не уверены в структуре, тогда это надо делать через модули типа HTML::Parser и подобные ему. А если вам нужна скорость и может быть потеря нескольких ссылок, тогда воспользуйтесь моим решением:
$href = qq~<a href = "JavaScript: alert('cmon')" ї
title =" cmon "> test </a>
<a href='new.htm'>new link</a>
~;
sub cut_tag{
my($tag,$param,$text)=@_;
my(@mas,$param_line);
if($tag and $param and $text){
while($text =~ m#<($tag)(.+?)>(.*?)</1>#igso){
$param_line = $2;
if($param_line =~ /$param/i){
$param_line =~ m/$params*=s*(["']?) (.*?)1/ogis;
push(@mas,$2);
}