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

11.06.2010, 20:04
|
|
Новичок
Регистрация: 17.08.2009
Сообщений: 21
Провел на форуме: 62180
Репутация:
0
|
|
Простите в регулярных выражениях я как в дремучем лесу..но меня наверно неправильно поняли,мне надо если ip 10.33.235.101 ,то значение переменной должно быть 10
|
|
|

11.06.2010, 20:07
|
|
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
Провел на форуме: 9220514
Репутация:
3338
|
|
Код:
$ip = '105.189.235.101';
($a) = split(/\./,$ip);
print $a;
|
|
|

12.06.2010, 00:48
|
|
Leaders of Antichat - Level 4
Регистрация: 16.01.2006
Сообщений: 1,966
Провел на форуме: 21768337
Репутация:
3486
|
|
Подскажите кодеры, можно ли как нибудь укоротить кодес? У меня что то варианты кончились.
perl -e "$ARGV[0] =~ tr/A-Za-z/a-zA-Z/, print $ARGV[0];" QwErTy
Ну или так:
perl -e "$_ = shift, tr/A-Za-z/a-zA-Z/, print;" QwE
Всё равно не комильфо
Последний раз редактировалось .Slip; 12.06.2010 в 03:05..
|
|
|

12.06.2010, 11:40
|
|
Постоянный
Регистрация: 30.08.2007
Сообщений: 773
Провел на форуме: 3069349
Репутация:
808
|
|
Код:
perl -e "$_ = shift, tr/A-Za-z/a-zA-Z/, print;" QwE
perl -E "$_ = shift, y/A-Za-z/a-zA-Z/, say" QwE
perl -E "y/A-Za-z/a-zA-Z/, say for shift" QwE
perl -E "say $_ ^ ' ' x length for shift" QwE
perl -E "say $_^' 'x length for@ARGV" QwE
|
|
|

15.06.2010, 10:17
|
|
Познавший АНТИЧАТ
Регистрация: 27.08.2007
Сообщений: 1,107
Провел на форуме: 5386281
Репутация:
1177
|
|
Подскажите а как в PERL'e сделать полный парсинг страницы?
Т.е. аналог preg_match_all в PHP.
Есть страница и надо вытянуть все значения, которые вытягивает регулярка.
Я пробовал вот так:
(my @items) = ($page =~ /<item num=(.*?) \/>/);
foreach $item (@items)
{
print $item."\r\n";
}
Но так выводит только первое спарсенное значение.
|
|
|

15.06.2010, 10:21
|
|
Познавший АНТИЧАТ
Регистрация: 23.08.2007
Сообщений: 1,237
Провел на форуме: 18127311
Репутация:
1676
|
|
/<item num=(.*?) \/>/g
|
|
|

15.06.2010, 10:29
|
|
Познавший АНТИЧАТ
Регистрация: 27.08.2007
Сообщений: 1,107
Провел на форуме: 5386281
Репутация:
1177
|
|
Сообщение от Kaimi
/<item num=(.*?) \/>/g
Спасибо большое!
А вот спаршенные данные должны быть русскими буквами, а там крякозябра.
Раньше помню как-то делал, но сейчас забыл уже как...
Как вариант кодировать в base64 и сверять с тем что мне нужно, но как-то не хочу так заморачиваться....
|
|
|

15.06.2010, 10:45
|
|
Познавший АНТИЧАТ
Регистрация: 27.04.2007
Сообщений: 1,044
Провел на форуме: 3660186
Репутация:
905
|
|
use Encode, Luke 
|
|
|

15.06.2010, 11:03
|
|
Познавший АНТИЧАТ
Регистрация: 27.08.2007
Сообщений: 1,107
Провел на форуме: 5386281
Репутация:
1177
|
|
Не понял, можешь именно пример подсказать?
encode_utf8
decode_utf8
from_to
и т.д... не помогает)
|
|
|

15.06.2010, 11:08
|
|
Постоянный
Регистрация: 17.09.2008
Сообщений: 562
Провел на форуме: 6962560
Репутация:
536
|
|
Tigger, если страница в utf-8, то типа так:
Код:
use Encode;
$s = 'тут страница, которую парсишь';
Encode::from_to($s, 'utf-8', 'windows-1251');
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|