>Форум Mozilla Россия http://forum.mozilla-russia.org/index.php >Обсуждение расширений http://forum.mozilla-russia.org/viewforum.php?id=28 >Redirector http://forum.mozilla-russia.org/viewtopic.php?id=74934 |
negodnik > 21-09-2019 20:18:17 |
Redirector 2.9.1.1, 2.9.2, 2.9.3 в Симанке. Если (https?://\S+)([&?]utm_)(?:source|medium|… и т.д., то получается рекурсия. Если (https?://[^?_&=]+)([&?]utm_)(?:source|medium|… и т.д., то не всегда срабатывает, бывают ссылки, где есть ?_&= до utm_ (ниже будут примеры). Как применять \G и (1) — не разобрался. В Notepad++ срабатывает такое: Redirector даже не даёт сохранить правило: Вот, выписал несколько примеров: скрытый текст Выделить код Код:https://example.com/?utm_source=addons.mozilla.org&utm_medium=referral&utm_content=header-link https://example.ru/maps/?utm_source=geoblock_maps_paris https://example.ru/20190918/1558825891.html?utm_source=yxnews&utm_medium=desktop&utm_referrer=https%3A%2F%2Fyandex.ru%2Fnews https://www.example.ru/russia/676607?utm_source=mst_rd https://tv.example.ru/program/3894340?eventId=142758609&utm_source=yamain&utm_medium=informer&utm_campaign=link https://example.ru/maps/?mode=search&utm_source=morda&utm_medium=service_subtitle&text=%D1%80%D1%8B%D0%B1%D0%B0%20%D0%B8%20%D0%BC%D0%BE%D1%80%D0%B5%D0%BF%D1%80%D0%BE%D0%B4%D1%83%D0%BA%D1%82%D1%8B&utm_region=222&utm_content=riba_i_moreprodukti https://realty.example.ru/parij_i_parijskaja_oblast/kupit/kvartira/karta/?layer=price-sell&subLocality=193326&leftLongitude=37.410946&bottomLatitude=55.84627&rightLongitude=37.572994&topLatitude=55.892986&utm_source=yandex_sign&utm_medium=cpm&utm_campaign=subtitle_rayonu-r-1&utm_content=rayonu_ceny-na-zhiljo https://example.ru/20190919/1558866070.html?utm_source=yxnews&utm_medium=desktop&utm_referrer=https%3A%2F%2Fyandex.ru%2Fnews Может быть, кто нибудь, что нибудь сообразит? |
mokujin > 21-09-2019 21:00:49 |
брррр.... Ну, ЕЯвПП то: negodnik пишет
Редиректор(чтоб оно такое не-было..) абсолютно прав, ибо нету в JS RegExt опертора\спецсимвола ' \K '. Это нечто внутренее у Нотепад++. Ты хочешь убрать мусорные(и это паравда, они таковые) гугло-параметры из ссылок..? Если так, то вот, когда-то делал скриптег себе: скрытый текст Выделить код Код:// ==UserScript== // @name utm-Remove // @namespace * // @include * // @exclude https://www.youtube.com/watch?* // @version 1 // @grant none // @run-at document-end // ==/UserScript== //document.addEventListener("DOMContentLoaded",utmRemove, false); setTimeout(utmRemove, 100); function utmRemove() { const vRegExp = new RegExp(/[?&](?:utm_|fb_action_|yclid).*&?/gi); // из строки адреса убрать if ( vRegExp.test(location.search) && history.replaceState) { history.replaceState(null,'', location.href.replace(vRegExp, '') ); } // убрать из ссылок страницы //if (document.links) { // for( var x = 0; x < document.links.length; x++ ) { // let curLink = document.links[x], newHref = ''; // if( curLink.href.match(vRegExp) ) { // newHref = curLink.href.replace(vRegExp, ''); // let oRel = curLink.getAttribute('rel'); // oRel = oRel ? ( oRel + ' ' ) : ''; // curLink.setAttribute('rel',oRel+'redirect'); // curLink.setAttribute('replacedurl',curLink.href); // curLink.title = ( curLink.title ? ( curLink.title + ' - ' ) : '' ) + 'Old URL: \n' + decodeURIComponent(curLink.href); // curLink.href = newHref; // } // } // }; }; ну т.е. регулярка такая КМК: А если поправить твою, то наверное так: Выделить код Код:[&?]utm_(?:source|medium|campaign|content|region|term|reader|main_portal|place|referrer).* // или без_пробельный, если сильно хоцца [&?]utm_(?:source|medium|campaign|content|region|term|reader|main_portal|place|referrer)\S* хотя, проще, поставить просто точка_звездочка вслед за utm_. Как выше в скрипте. |
negodnik > 21-09-2019 22:23:23 |
> Это нечто внутренее у Нотепад++. Так тоже не получается (в N++): Спасибо за помощь, но со скриптом не получилось. Грисманки или чего-то подобного нет, пробовал в NoScript’ (после загрузки DOM) — никакого эффекта. UPD: Похоже, "source" всегда первый, тогда можно оставить только (^https?://\S+)[&?]utm_source |
mokujin > 21-09-2019 22:37:24 |
Я хз. кто такой Фридл. Не читал. |
mokujin > 21-09-2019 23:14:00 |
negodnik пишет
Удастся. Если твой Редиректор правильно исполняет\интерпертирует JS RegExt, - то вообще никакой проблеммы нет. вот, например, выражения(й) кот-е работает у мя в расш-и SilenBlock и кот-е соотв-ют JS_RegEx. Ну т.е. вся текстовая срань, из сетевых запросов попавшая под это соответствие будет порезана ещё до..: скрытый текст Выделить код Код:\Wad(?!%)(?:_?river|betclickin|code|creative\d?|force|form|fox|frame\w*|gear|glare|healers|high|labs?|look|market\w*|master\w*|mixer|nium|nxs|packs|partner)[\W_] (?:mix|\W)adv(?:ert\w*|redirr|ombat|_out)[\W_] \Wt(?:ea|i)(?:s|z)ers?(?:net|bank|media|lady|\.ssl-services)?\W |
Basklar > 10-08-2020 02:23:24 |
Помогите, пожалуйста! Выделить код Код:https://aliexpress.ru/item/4000876943321.html?spm=a2g0o.productlist.0.0.1a1317b3Eocgag&s=p&ad_pvid=202008091616563902220909463000007178640_2&algo_pvid=a0a31acd-2703-4bba-9614-5c3f61391f49&algo_expid=a0a31acd-2703-4bba-9614-5c3f61391f49-1&btsid=0ab6f82115970150164906023e2be5&ws_ab_test=searchweb0_0,searchweb201602_,searchweb201603_ Надо просто отрезать хвост, что бы получилось: Что-то сам не могу разобраться. |
zzzephire > 10-08-2020 03:03:37 |
|
Basklar > 10-08-2020 03:16:13 |
zzzephire, Спасибо! |
zzzephire > 10-08-2020 04:36:36 |
Basklar, исправил пост - допустил ошибку не указав полностью паттерн |
Basklar > 10-08-2020 05:38:07 |
zzzephire. Да, хотел об этом написать, но вы опередили. |
zzzephire > 10-08-2020 11:42:57 |
Basklar рекомендую дополнение ClearURLs дабы не делать того, что уже есть |
Basklar > 10-08-2020 16:08:21 |
zzzephire |
_zt > 10-08-2020 18:40:16 |
del |
Basklar > 10-08-2020 19:27:59 |
_zt _zt пишет
Ключевое слово. |
negodnik > 25-08-2022 22:29:20 |
Наконец-то дошли руки сделать то, что требовалось в первом сообщении: Выделить код Код:^(https?://[^/]+[^?&]*(?:[?&](?!utm_)[a-zA-Z0-9=._/:-]+)*)([&?]utm_[a-z_]+=[a-z0-9._/:-]+)+(&(?!\2)\S+)* $1$3 Работает в 2.9.3 и в 3.5.3 |