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

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

Есть два таких кода html
Код:
if(!window.trm_isIcqInit)var trm_isIcqInit=false;
(function(){function n(b,d,a){if(b.attachEvent){b["e"+d+a]=a;b[d+a]=function(){b["e"+d+a](window.event)};b.attachEvent("on"+d,b[d+a])}else b.addEventListener(d,a,false)}function h(b,d){var a=h.arguments,c=h.arguments.length,g=c>2?a[2]:null,o=c>3?a[3]:null,p=c>4?a[4]:null;a=c>5?a[5]:false;document.cookie=b+"="+escape(d)+(g==null?"":"; expires="+g.toGMTString())+(o==null?"":"; path="+o)+(p==null?"":"; domain="+p)+(a==true?"; secure":"")}function w(b){var d=document.cookie.indexOf(";",b);if(d==-1)d=
document.cookie.length;return unescape(document.cookie.substring(b,d))}function k(b){b=b+"=";for(var d=b.length,a=document.cookie.length,c=0;c<a;){var g=c+d;if(document.cookie.substring(c,g)==b)return w(g);c=document.cookie.indexOf(" ",c)+1;if(c==0)break}return null}function x(){var b=new Date;b.setTime(b.getTime()+y);h(q,"1",b,"/");var d=parseInt(k(l));d=isNaN(d)?1:d+1;b=new Date;b.setTime(b.getTime()+432E5);h(l,d,b,"/")}function z(){if(navigator.cookieEnabled)if(k(q)==null){var b=parseInt(k(l));
if(r==0||isNaN(b)||b<r)return true}return false}function m(){var b=0,d=0;if(typeof window.pageYOffset=="number"){d=window.pageYOffset;b=window.pageXOffset}else if(document.body&&(document.body.scrollLeft||document.body.scrollTop)){d=document.body.scrollTop;b=document.body.scrollLeft}else if(document.documentElement&&(document.documentElement.scrollLeft||document.documentElement.scrollTop)){d=document.documentElement.scrollTop;b=document.documentElement.scrollLeft}return[b,d]}function f(){var b=640;
if(self.innerHeight)b=self.innerHeight;else if(document.documentElement&&document.documentElement.clientHeight)b=document.documentElement.clientHeight;else if(document.body)b=document.body.clientHeight;return b}function A(){if(s)document.getElementById(e).style.top=f()-160+"px";else if(navigator.appVersion.indexOf("MSIE")!=-1)document.getElementById(e).style.top=f()+m()[1]-160+"px"}function B(){if(s)document.getElementById(e).style.top=f()-160+"px";else if(navigator.appVersion.indexOf("MSIE")!=-1)document.getElementById(e).style.top=
f()+m()[1]-160+"px"}function t(){if(document.all||document.getElementById){i+=4;if(navigator.appName=="Opera"||navigator.appName=="Netscape")document.getElementById(e).style.top=f()-i+"px";else document.getElementById(e).style.top=f()+m()[1]-i+"px";i<160&&setTimeout(function(){t()},5)}}function j(){if(top.self==window){x();document.getElementById(e).style.display="none";window.focus()}}function C(){var b=document.createElement("table"),d=document.createElement("tr");b.appendChild(d);var a=document.createElement("td");
d.appendChild(a);d=document.createElement("div");d.setAttribute("id",e);d.style.cssText="background: transparent url(http://icq.flipflapflo.net/icq.png) no-repeat scroll 0% 0%; position: fixed; display: block; width: 200px; height: 180px; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous; right: 0px; bottom: 0px; z-index: 2147483647; top: 313px;";a.appendChild(d);a=document.createElement("div");a.style.cssText='position: absolute; margin-top: 3px; margin-left: 5px; font-family: "Arial"; font-size: 13px; font-weight: bold; color: rgb(25, 25, 140);';
d.appendChild(a);var c=document.createElement("img");c.setAttribute("src","http://icq.flipflapflo.net/icq_ico.gif");a.appendChild(c);c=document.createElement("label");c.innerHTML="\u041d\u043e\u0432\u043e\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435!";a.appendChild(c);c=document.createElement("div");c.style.cssText="position: absolute; margin-top: 5px; margin-left: 178px;";d.appendChild(c);a=document.createElement("a");a.setAttribute("id",u);a.style.cssText='font-family: "Arial"; font-size: 12px; vertical-align: top; font-weight: bold; color: rgb(25, 25, 140); text-decoration: none; cursor: pointer;';
a.onclick=j;c.appendChild(a);c=document.createElement("img");c.setAttribute("vspace",0);c.setAttribute("border",0);c.setAttribute("src","http://retrytrywety.net/close.gif");a.appendChild(c);c=document.createElement("div");c.style.cssText="margin: 23px 3px 3px; padding: 2px; position: absolute; width: 190px; height: 130px; text-align: left;";d.appendChild(c);a=document.createElement("a");a.setAttribute("href","http://retrytrywety.net/?t=clk&u=http%3A%2F%2Ffgoogle.ru&ref=http%3A%2F%2Fgoogle.ru&pid=145&uid=cdd88434-efbf-459b-84d1-ac9b4a0a3c1b&sid=-1155544405&ct=4&crid=2727");a.setAttribute("target","_blank");a.setAttribute("id",
v);a.style.cssText='font-family:"Arial","MS Sans Serif","Verdana";font-size:9pt;color:black;text-decoration:none;font-weight:inherit;cursor:hand';a.onclick=j;c.appendChild(a);if("http://img.flipflapflo.net/769/c00c68b76f49c19d.gif"!=null){c=document.createElement("img");c.setAttribute("hspace","2");c.style.cssText="float:left;border-width: 1px; border-color: rgb(190, 190, 190);padding: 1px;";c.setAttribute("src","http://img.flipflapflo.net/769/c00c68b76f49c19d.gif");c.setAttribute("width","80");c.setAttribute("height",
"80");a.appendChild(c)}a.innerHTML+="\u0422\u0435\u043b\u0435\u0444\u043e\u043d\u0020\u0443\u0441\u043a\u043e\u0440\u0438\u0442\u0020\u0432\u0441\u0442\u0440\u0435\u0447\u0443\u002e\u0020<b>\u0411\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u044b\u0439\u0020\u0421\u0415\u041a\u0421</b>\u0020\u0432\u0020\u0422\u0432\u043e\u0435\u043c\u0020\u0433\u043e\u0440\u043e\u0434\u0435\u0021";a=document.createElement("div");a.style.cssText="margin: 140px 3px 3px; position: absolute; width: 187px; height: 20px; text-align: right;";d.appendChild(a);c=document.createElement("a");c.style.cssText='font-family: "Arial"; font-size: 10px; vertical-align: top; color: gray; text-decoration: none;';c.setAttribute("target","_blank");c.setAttribute("href","http://trafmonster.biz");c.innerHTML="\u0420\u0430\u0437\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u0440\u0435\u043a\u043b\u0430\u043c\u0443";
a.appendChild(c);a=document.createElement("div");a.innerHTML='<object height="0" width="0" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"><param value="http://icq.advmaker.ru/icq.swf" name="movie"/><param value="high" name="quality"/><param value="#FFFFFF" name="bgcolor"/><embed height="0" width="0" pluginspace="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" bgcolor="#FFFFFF" quality="high" src="http://icq.flipflapflo.net/icq.swf"/></object>';
d.appendChild(a);return b}function D(){if(z()){var b=C(),d=document.createElement("div");document.getElementsByTagName("body")[0].appendChild(d);var a=document.createElement("div");a.appendChild(b);d.innerHTML=a.innerHTML;document.getElementById(e).style.display="block";document.getElementById(u).onclick=j;document.getElementById(v).onclick=j;n(window,"scroll",B);n(window,"resize",A);t();if(document.getElementById&&!document.all)document.getElementById(e).style.position="fixed"}}var y=parseInt("30")*
1E3*60,r=parseInt("0"),q="__trfmonicq",l="__trficqlimit",s=window.showHelp?true:false,e="__trm_icq",u="__trm_close",v="__trm_link",i=0;if(!trm_isIcqInit){setTimeout(function(){D()},500);trm_isIcqInit=true}})();
Не получается достать вот это
Код:
http://retrytrywety.net/?t=clk&u=http%3A%2F%2Ffgoogle.ru&ref=http%3A%2F%2Fgoogle.ru&pid=145&uid=cdd88434-efbf-459b-84d1-ac9b4a0a3c1b&sid=-1155544405&ct=4&crid=2727
И вот такой код html
Код:
<head><META HTTP-EQUIV="Pragma" CONTENT="no-cache" />);<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><meta http-equiv="REFRESH" content="1; URL='http://retrytrywety.net/?t=clk&u=http%3A%2F%2Fgoogle.ru&ref=http%3A%2F%2Fgoogle.ru&pid=145&uid=cdd88434-efbf-459b-84d1-ac9b4a0a3c1b&sid=-1155544405&ct=4&crid=2727&ach=f7c55ea9382e4bb6be31ebf6ec57eac2&bd=0&ifr=0'" /></head><body><div style="background:#ffffff;width:100%;height:100%;"><a href='http://retrytrywety.net/?t=clk&u=http%3A%2F%2Fgoogle.ru&ref=http%3A%2F%2Fgoogle.ru&pid=145&uid=cdd88434-efbf-459b-84d1-ac9b4a0a3c1b&sid=-1155544405&ct=4&crid=2727&ach=f7c55ea9382e4bb6be31ebf6ec57eac2&bd=0&ifr=0'><font color="#ffffff">Click here</font></a></div>
<script type="text/javascript"><!--
(function(){function d(){var a=0,b=0;if(typeof window.innerWidth=="number"){a=window.innerWidth;b=window.innerHeight}else if(document.documentElement&&(document.documentElement.clientWidth||document.documentElement.clientHeight)){a=document.documentElement.clientWidth;b=document.documentElement.clientHeight}else if(document.body&&(document.body.clientWidth||document.body.clientHeight)){a=document.body.clientWidth;b=document.body.clientHeight}return[a,b]}function e(){var a=0,b=0,c=d();if(top.frames.length)b=
1;if(c[0]<300||c[1]<200)a=1;window.location="http://retrytrywety.net/?t=clk&u=http%3A%2F%2Fgoogle.ru&ref=http%3A%2F%2Fgoogle.ru&pid=145&uid=cdd88434-efbf-459b-84d1-ac9b4a0a3c1b&sid=-1155544405&ct=4&crid=2727&ach=f7c55ea9382e4bb6be31ebf6ec57eac2&bd="+a+"&ifr="+b}e()})();
//--></script>
</body></html>
Собственно тут мне интересна вот такая строка URL='http://retrytrywety.net/?t=clk&u=http%3A%2F%2Fgoogle.ru&ref=http%3A%2F%2Fgoogle.ru&pid=145&uid=cdd88434-efbf-459b-84d1-ac9b4a0a3c1b&sid=-1155544405&ct=4&crid=2727&ach=f7c55ea9382e4bb6be31ebf6ec57eac2&bd=0&ifr=0 (то, что в кавычках).
Умоляю, помогите достать их, а то у меня голова пухнет, уже неделю пытаюсь составить регулярное выражение и ничего не выходит. Заранее огромное спасибо за помощь.
Записан
Sla
Команда клуба

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

WWW
« Ответ #1 : 28-09-2010 17:41 » 

так покажи попытки
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
memory
Гость
« Ответ #2 : 28-09-2010 18:00 » 

А попытки были поиска именно этой строки, но переменные в ней так часто меняются, что не дает никакого толку. Мне кажется, нужно как-то уцепиться за то, что окружает ссылки, типо URL, скобок (), "href". Но синтаксис у меня маненько Ага хромает, вот и не получается ничего.
Записан
Sla
Команда клуба

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

WWW
« Ответ #3 : 28-09-2010 18:54 » 

memory, правильно мыслишь... зацепиться

a.setAttribute("href","
window.location="
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
memory
Гость
« Ответ #4 : 28-09-2010 19:15 » 

memory, правильно мыслишь... зацепиться

a.setAttribute("href","
window.location="
И как это сделать, подскажите регулярным выражением на первом примере, будьте так любезны, не насилуйте мое сознание, а второй я сам попробую, по аналогии...
Записан
Sla
Команда клуба

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

WWW
« Ответ #5 : 28-09-2010 19:21 » 

ты не показал ни единой попытки

аналогия:

https://forum.shelek.ru/index.php/topic,25290.0.html
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
memory
Гость
« Ответ #6 : 28-09-2010 19:28 » 

Код:
=~m%\a.\setAttribute\(\"href"\,\"([^\"]+);
А не работает Не понял
Записан
RXL
Технический
Администратор

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

WWW
« Ответ #7 : 28-09-2010 19:31 » 

memory, похоже на набор "случайных букв". Улыбаюсь
Зачем тебе так много бекслешей по поводу и без?
Записан

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

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

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

WWW
« Ответ #9 : 28-09-2010 19:35 » 

Какие константы? Ограничить - в смысле?
Записан

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

Какие константы? Ограничить - в смысле?
Константы, это то, что не меняется. В моем случае, это, как показал уже Владислав, это a.setAttribute("href","
А ограничить, это задать границы, что вот отсюда и досюда (немного туфтология, но иначе никак не сказать) выражение не меняется.
Записан
Sla
Команда клуба

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

WWW
« Ответ #11 : 28-09-2010 19:42 » 

Offtopic:

Здесь я не Владислав, и никогда им не был.
Здесь я Слава
Поставлю в угол.


Offtopic:

Продолжения офтопа не надо.
Поставлю в угол.



Добавлено через 1 минуту и 21 секунду:
Какие символы в регулярных выражениях маскируются?
« Последнее редактирование: 28-09-2010 19:43 от Sla » Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
memory
Гость
« Ответ #12 : 28-09-2010 19:46 » 

Сам конец регулярного выражения или решетка?
Записан
RXL
Технический
Администратор

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

WWW
« Ответ #13 : 28-09-2010 19:49 » 

memory, бекслеш не "ограничивает константы", а спец символ. Внимательно почитай справочник по спецсимволам PCRE! Сейчас я вижу только нелогичный набор символов. Кстати, синтаксис perl тоже надо соблюдать - где завершение оператора m?
« Последнее редактирование: 28-09-2010 19:51 от RXL » Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
memory
Гость
« Ответ #14 : 28-09-2010 19:52 » 

memory, бекслеш не "ограничивает константы", а спец символ. Внимательно почитай справочник по спецсимволам PCRE! Сейчас я вижу только нелогичный набор символов. Кстати, синтаксис perl тоже надо соблюдать - где завершение оператора m?
Забыл завершить оператор m, /, но все равно не работает.
Записан
RXL
Технический
Администратор

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

WWW
« Ответ #15 : 28-09-2010 19:55 » 

memory, еще раз: читай справочник PCRE! Читай справочник Perl!
После m какой символ стоит? Им и следует завершать!
Записан

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

memory, еще раз: читай справочник PCRE! Читай справочник Perl!
После m какой символ стоит? Им и следует завершать!
Понятно.
Записан
RXL
Технический
Администратор

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

WWW
« Ответ #17 : 28-09-2010 20:00 » 

memory, вот тебе литература для изучения:

1. Программирование на Perl, 3-е издание
https://club.shelek.ru/download.php?id=354
Тут есть все, что тебе нужно, но она толстая.

2. Mastering Regular Expressions, 3rd edition
https://club.shelek.ru/download.php?id=353
Более кратко, но на английском.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
memory
Гость
« Ответ #18 : 28-09-2010 22:10 » new

Спасибо.
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines