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

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Помогите пожалуйста с регулярным выражением  (Прочитано 14116 раз)
0 Пользователей и 2 Гостей смотрят эту тему.
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 » new

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

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
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 » 

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

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

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines