URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 1193
[ Назад ]

Исходное сообщение
"Регулярное выражение по обработке тэгов.(perl)"

Отправлено RUSLAN , 18-Дек-02 04:05 
Необходимо вытащить ключевые слова(один,два,три,четыре) из content:
<meta content="один,два,три,четыре" name="Keywords">
делаю так:

if(/<meta\s+content\s*=\s*(["']).*\1\s+name=\1\.*\1>/i)
                  {
           if(defined($_))
              {    
              push(@meta,$_);
            }    
        
           }
но при таком расскладе обрабатывается одна строка, тоесть
если например будет например:
<meta content="один,два,три,четыре"
name="Keywords">
то уже работать небудет. :(
Как можно обработать несколько строк ?


Содержание

Сообщения в этом обсуждении
"RE: Регулярное выражение по обработке тэгов.(perl)"
Отправлено ilya , 18-Дек-02 09:43 
>Необходимо вытащить ключевые слова(один,два,три,четыре) из content:
><meta content="один,два,три,четыре" name="Keywords">
> делаю так:
...
Рабочий вариант:

#!/usr/bin/perl
$/='';
open F,"qqq.html";
$_=<F>;
close F;
$/='\n';
if(/<meta\s+content\s*=\s*(["'])(.*)\1\s+name=\1.*\1>/i)
#if (/<meta\s+content\s*=\s*(["'])(.*)\1\s+name=\1.*\1>/i)
                  {
    if(defined($2))
       {
      push(@meta,$2);
     }
    
   }

где qqq.html есть двустрочный файл:
<meta content="один,два,три,четыре"
name="Keywords">



"RE: Регулярное выражение по обработке тэгов.(perl)"
Отправлено RUSLAN , 20-Дек-02 20:54 
Спасибо, то что надо !