Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Помогите пожалуйста с регулярным выражением  (Прочитано 14074 раз)
0 Пользователей и 4 Гостей смотрят эту тему.
XXL
Гость
« : 03-07-2010 18:56 » 

Ситуация вот какая... На локальном трекере, ну который у нас в локальной сети находится, админ решил денешек срубить, поставил рекламу в обмен за гигабайты аплоада... Вот код Внимание! Говорит и показывает...
Код:
function PopShow()
{
CookieTest=navigator.cookieEnabled;
if(CookieTest)
{
ClickUndercookie = GetCookie('clickunder');
if (ClickUndercookie == null)
{
var ExpDate = new Date ();
ExpDate.setTime(ExpDate.getTime() + (24 * 60 * 60 * 1000));
SetCookie('clickunder','1',ExpDate, "/");
window.open("http://10.178.14.15/js/click.php?hash=46f6d&id=3&t=newtime","PopWin","resizable=1,toolbar=1,location=1,menubar=1,status=1,scrollbars=1'");
window.focus();
}
}
}
function GetCookie (name) {
var arg = name + "=";
var alen = arg.length;
var clen = document.cookie.length;
var i = 0;
while (i < clen) {
var j = i + alen;
if (document.cookie.substring(i, j) == arg)
return getCookieVal (j);
i = document.cookie.indexOf(" ", i) + 1;
if (i == 0) break;
}
return null;
}
function SetCookie (name, value) {
var argv = SetCookie.arguments;
var argc = SetCookie.arguments.length;
var expires = (argc > 2) ? argv[2] : null;
var path = (argc > 3) ? argv[3] : null;
var domain = (argc > 4) ? argv[4] : null;
var secure = (argc > 5) ? argv[5] : false;
document.cookie = name + "=" + escape (value) +
((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +
((path == null) ? "" : ("; path=" + path)) +
((domain == null) ? "" : ("; domain=" + domain)) +
((secure == true) ? "; secure" : "");
}
document.onmouseup=PopShow;
Прошу помочь составить регулярку для отлова строки httр://10.178.14.15/click.php?hash=46f6d&id=3&t=newtime, а то совсем прямо я измучился, смотрел примеры в сети, но ничего не выходит... Заранее огромное и человеческое спасибо за любую помощь! Люблю!
« Последнее редактирование: 03-07-2010 19:05 от Алексей1153++ » Записан
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 03-07-2010 21:56 » 

Зачем вообще тут регулярное выражение, если ищется константная строка?

Совершенно не понятно, чем собираешься искать и где. Т.ч. не вижу связи с Perl и перенес сюда.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
XXL
Гость
« Ответ #2 : 03-07-2010 22:22 » 

А регулярное выражение затем, чтобы эту строку из мусора кода захватить, вон я смотрел в других темах, там похоже...


Я имею ввиду, что строка не совсем константная, она меняется, меняется значение хеша в строке и т.п.
« Последнее редактирование: 03-07-2010 23:45 от RXL » Записан
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 03-07-2010 23:47 » 

Вот тебе пример: "aaaaa bbbb ccccc". Разве для того, чтобы проверить, есть ли подстрока "bbbb", нужено регулярное выражение? Простой поиск и не более.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
XXL
Гость
« Ответ #4 : 04-07-2010 00:19 » 

Вот тебе пример: "aaaaa bbbb ccccc". Разве для того, чтобы проверить, есть ли подстрока "bbbb", нужено регулярное выражение? Простой поиск и не более.

А кодом нельзя помочь? Будьте так любезны, а то я что то не совсем соображаю, как все это выглядеть должно...
Записан
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #5 : 04-07-2010 06:51 » 

XXL, каким кодом? Ты ж ничего не говоришь...
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
XXL
Гость
« Ответ #6 : 04-07-2010 22:06 » 

Простите недоумка...
Код:
#!/usr/bin/perl

use strict;
use warnings;

my $t_string = "
function PopShow()
{
CookieTest=navigator.cookieEnabled;
if(CookieTest)
{
ClickUndercookie = GetCookie('clickunder');
if (ClickUndercookie == null)
{
var ExpDate = new Date ();
ExpDate.setTime(ExpDate.getTime() + (24 * 60 * 60 * 1000));
SetCookie('clickunder','1',ExpDate, "/");
window.open("http://10.178.14.15/js/click.php?hash=46f6d&id=3&t=newtime","PopWin","resizable=1,toolbar=1,location=1,menubar=1,status=1,scrollbars=1'");
window.focus();
}
}
}
function GetCookie (name) {
var arg = name + "=";
var alen = arg.length;
var clen = document.cookie.length;
var i = 0;
while (i < clen) {
var j = i + alen;
if (document.cookie.substring(i, j) == arg)
return getCookieVal (j);
i = document.cookie.indexOf(" ", i) + 1;
if (i == 0) break;
}
return null;
}
function SetCookie (name, value) {
var argv = SetCookie.arguments;
var argc = SetCookie.arguments.length;
var expires = (argc > 2) ? argv[2] : null;
var path = (argc > 3) ? argv[3] : null;
var domain = (argc > 4) ? argv[4] : null;
var secure = (argc > 5) ? argv[5] : false;
document.cookie = name + "=" + escape (value) +
((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +
((path == null) ? "" : ("; path=" + path)) +
((domain == null) ? "" : ("; domain=" + domain)) +
((secure == true) ? "; secure" : "");
}
document.onmouseup=PopShow;";

if ($t_string =~ m/\d+\.\d+/)
{
  print "Yes: $&\n";
}
else
{
  print "No.\n";
}

Вот как-то так планировал, шаблоном задать поиск строки http://10.178.14.15/js/click.php?hash=46f6d&id=3&t=newtime, а в качесвте константы использовать window.open
Записан
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #7 : 05-07-2010 03:30 » 

Эх-хе-хех...

Ну, хорошо, я понял, что ты хочешь получить код на Perl. Свой код можешь сразу стереть - смысла в нем нет, а ошибок синтаксиса - гора.


Давай пока разберемся, что надо найти.
шаблоном задать поиск строки http://10.178.14.15/js/click.php?hash=46f6d&id=3&t=newtime
Тебе нужно найти именно эту строку или в ней есть переменные части? Какие части тут переменные? Опиши их подробнее.


« Последнее редактирование: 05-07-2010 03:47 от RXL » Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
XXL
Гость
« Ответ #8 : 05-07-2010 04:28 » 

Ну да, именно эту строку... А переменная в ней только одна, хеш какой то, т.е., в строке http://10.178.14.15/js/click.php?hash=46f6d&id=3&t=newtime будет меняться только этот параметр ?hash=....
Записан
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #9 : 05-07-2010 05:25 » 

Хеш из каких символов может состоять? На примере похоже на шестнадцатеричные цифры, но стоит уточнить.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
XXL
Гость
« Ответ #10 : 05-07-2010 16:16 » 

6c6c3f3328af8e769d37eecb681d8ec8
330d6f407ddd2b4890f9b1a5447c375f
99ce259016f2875341409c1f016e7740
ce78da7bb0887a08d24fba71c578b696

Вот какого вида может быть хэш...
Записан
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #11 : 06-07-2010 03:31 » 

Гуд.

Код:
my $fd;

open $fd, '<links.txt' or die;

while (<$fd>)
{
    next unless m%(http://10\.178\.14\.15/js/click\.php\?hash=[[:xdigit:]]{32}&id=3&t=newtime)%;

    print "$1\n";
}

close $fd;
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
XXL
Гость
« Ответ #12 : 06-07-2010 04:30 » new

Спасибо, сейчас затестим... Улыбаюсь

Добавлено через 9 минут и 4 секунды:
 Да-да Спасибо большое, все работает...  Улыбаюсь Улыбаюсь Улыбаюсь Улыбаюсь
« Последнее редактирование: 06-07-2010 04:39 от XXL » Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines