The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"perl regexp"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"perl regexp"  
Сообщение от akam email(??) on 06-Фев-07, 02:45 
Здравствуйте,
не пойму никак как можно снять значение всех title="(...)" из переменной с html кодом?

есть переменная $aa. в ней содержиться такой хтмл код. допустим:
Код (html):     скопировать код в буфер обмена
<td title="i20-56"><a href="/link">что еще...<td title
="текст"><a
href="/link2">.... и дальше в том же духе
и мне нужно узнать все значения title и href.
попробовал так
Код (perl):     скопировать код в буфер обмена
while($aaa =~ m/title=\"(.+?)\".+?href=\".+?/gsc) {
    print "$1 - $2\n";
}
а он мне выдал первое значение title и последнее href...
и зациклился... :(
i20-56 - /link100
i20-56 - /link100
i20-56 - /link100
...
что я неправильно делаю?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

 Оглавление

  • perl regexp, ctax, 08:54 , 06-Фев-07, (1)  
    • perl regexp, akam, 10:22 , 06-Фев-07, (2)  
      • perl regexp, akam, 15:42 , 06-Фев-07, (3)  
        • perl regexp, ctax, 17:01 , 06-Фев-07, (4)  
          • perl regexp, akam, 19:09 , 06-Фев-07, (5)  
            • perl regexp, ctax, 09:19 , 07-Фев-07, (6)  
              • perl regexp, akam, 09:46 , 08-Фев-07, (7)  

Сообщения по теме [Сортировка по времени, UBB]


1. "perl regexp"  
Сообщение от ctax (??) on 06-Фев-07, 08:54 
$qwe=qq(<td title="i20-56"><a href="/link">что еще...<td title="текст"><a href="/link2">);
print $_."\n" for $qwe=~/(title|href)=\"(.+?)\"/g;
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "perl regexp"  
Сообщение от akam email(??) on 06-Фев-07, 10:22 
>$qwe=qq(<td title="i20-56"><a href="/link">что еще...<td title="текст"><a href="/link2">);
>print $_."\n" for $qwe=~/(title|href)=\"(.+?)\"/g;


спасибо огромное. :)

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "perl regexp"  
Сообщение от akam email(??) on 06-Фев-07, 15:42 
>>$qwe=qq(<td title="i20-56"><a href="/link">что еще...<td title="текст"><a href="/link2">);
>>print $_."\n" for $qwe=~/(title|href)=\"(.+?)\"/g;
>
>
>спасибо огромное. :)


все. значения я снял вот таким вот образом:
for($response->content =~ m/title=\"([^"]{11,}?)\".+?href=\".+?id=(\d+:\d+)/gsc) {
    chomp;
    print "$_\n";
}

только почему-то в переменной $1 и $2 постоянно одно значение - первое попавшееся. почему так может быть?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "perl regexp"  
Сообщение от ctax (??) on 06-Фев-07, 17:01 
Это просто.
$perl -e '
$qwe="abcd";
print $1."\n" for $qwe=~/(\w)/g;
'
d
d
d
d

$qwe=~/(\w)/g вычисляется не постепенно, а сразу, то есть прежде чем начнется выполнение
цикла, $1 уже побывает всеми значениями, которые совпадут с регекспом, и поэтому будет в значении последней найденной подстроки.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "perl regexp"  
Сообщение от akam email(??) on 06-Фев-07, 19:09 
>$qwe=~/(\w)/g вычисляется не постепенно, а сразу, то есть прежде чем начнется выполнение
>
>цикла, $1 уже побывает всеми значениями, которые совпадут с регекспом, и поэтому
>будет в значении последней найденной подстроки.

и как поступают в таких случаях? только $_ ?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "perl regexp"  
Сообщение от ctax (??) on 07-Фев-07, 09:19 
>и как поступают в таких случаях? только $_ ?

Можно так, можно еще сделать строке split, чтоб в каждой стоке находилось не более одного совпадения  поиска (если возможно) и сохранить ее в массиве, а потом
уже внутри цикла сравнивать по регекспу , в этом случае $1,$2 ... , будут корректными.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

7. "perl regexp"  
Сообщение от akam (??) on 08-Фев-07, 09:46 
спасибо за ответы...
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Спонсоры:
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2021 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру