ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
|

24.03.2009, 14:11
|
|
Постоянный
Регистрация: 11.03.2008
Сообщений: 347
Провел на форуме: 2075230
Репутация:
462
|
|
perl желательно, но смысл понятен, полюбому можно неиспользую for. ток как?)
|
|
|

24.03.2009, 15:23
|
|
Новичок
Регистрация: 03.11.2007
Сообщений: 9
Провел на форуме: 61379
Репутация:
12
|
|
можно если написать
Код:
while($get->content){
if (/<a href=\"(.*)\">/)
{
print "$1\n";
}
}
|
|
|

24.03.2009, 15:40
|
|
Участник форума
Регистрация: 05.11.2008
Сообщений: 105
Провел на форуме: 292722
Репутация:
71
|
|
Я бы сделал что-то типа такого:
Код:
print $1 while($get->content =~ /<a href=\"(.*)\">/igm);
А вообще в регулярных выражениях есть еще такая штука: \G - граница, на которой остановился предыдущий глобальный поиск, выполняемый командой m/.../g, может она поможет, если такой код не сработает!
|
|
|

24.03.2009, 17:09
|
|
Познающий
Регистрация: 14.01.2009
Сообщений: 93
Провел на форуме: 244235
Репутация:
39
|
|
Код:
my @arr = $get->content =~ /<a href=\"(.*)\">/g;
print join "\n", @arr;
|
|
|

27.03.2009, 18:35
|
|
Постоянный
Регистрация: 05.07.2008
Сообщений: 555
Провел на форуме: 3134311
Репутация:
1467
|
|
Сообщение от ph1l1ster
Код:
if ($get->content =~ /<a href=\"(.*)\">/)
{
print "$1\n";
}
выводит только первую найденную. как вывести все найденные?
Попробуй вместо 1 написать all
|
|
|

27.03.2009, 18:38
|
|
Познающий
Регистрация: 14.01.2009
Сообщений: 93
Провел на форуме: 244235
Репутация:
39
|
|
Сообщение от ph1l1ster
Код:
if ($get->content =~ /<a href=\"(.*)\">/)
{
print "$1\n";
}
выводит только первую найденную. как вывести все найденные?
Код:
my $a = q[f549ty3945g9h48hg34hg430ghgh4gh3470gh473g5834];
my @b = $a =~ /(\d+)/g;
print join "\n", @b;
__END__
549
3945
9
48
34
430
4
3470
473
5834
|
|
|

27.03.2009, 22:53
|
|
Участник форума
Регистрация: 24.11.2008
Сообщений: 205
Провел на форуме: 1123418
Репутация:
362
|
|
|
|
|

30.03.2009, 00:21
|
|
Участник форума
Регистрация: 12.03.2008
Сообщений: 159
Провел на форуме: 912928
Репутация:
137
|
|
Привет! Я хочу сграббить все главные темы с blogs.yandex.ru.
PHP код:
$req = $ua->get("http://blogs.yandex.ru")->as_string;
my $topic= $1 if $req=~/<i class=\"ico\"><\/i>(\w+)</;
printf "$topic";
Однако я получу только первую тему. Как сделать так, чтобы получить все три темы?
|
|
|

30.03.2009, 00:37
|
|
Reservists Of Antichat - Level 6
Регистрация: 23.08.2007
Сообщений: 1,237
Провел на форуме: 18127311
Репутация:
1676
|
|
напиши типа
PHP код:
my @topic = $req =~ /<i class="ico\"><\/i>(\w+)</gm;
print @topic;
|
|
|

31.03.2009, 02:05
|
|
Постоянный
Регистрация: 09.07.2006
Сообщений: 937
Провел на форуме: 1948091
Репутация:
1686
|
|
ps юзайте дефолтывою переменную куда совпадение с маской поиска закидывается $& чтобы лишний массив topic не пихать
|
|
|
|
 |
|
|
Здесь присутствуют: 3 (пользователей: 0 , гостей: 3)
|
|
|
|