Подскажите с регуляркой или с сниппетом.

Roman48

Client
Регистрация
28.02.2016
Сообщения
2 058
Благодарностей
742
Баллы
113
Нашел сниппет, вроде подходит, но работает не так как мне нужно.
Для себя правило усвоил при работе с яндексом и кликами на не неизвестных сайтах, нужно строго-настрого контролировать, количество вкладок и где сейчас находишься.
Помогите, пожалуйста, этот сниппет подправить или правильную регулярку сделать.
В выдачи яндекса собираю ссылки, вот список собрал куда буду переходить, перешел и проверяю урл, первым делом ищу вкладку about:blank. если не нахожу отлично, проверяю дальше, в выдачи могут быть одни ссылки, а на самом деле совсем другие урлы.
Хорошо подходит {-Page.Domain-}, но все равно доменная зона может быть другая? нужна регурярка взять часть домена
Вот например
kino.1tv.ru - www.kino.1tv.ru - kino.1tv.tv - kino.1tv.info
co.lordfilm.cx - tr.lordfilm.co - bm.lordfilm.tv
Нужно всегда брать часть домена - lordfilm

C#:
Источник //https://zennolab.com/discussion/threads/proverka-nalichija-chasti-url-v-celom.49081/post-367323
string stroka_1 = "forums/snipety.136/create-thread";
string stroka_2 = "https://zennolab.com/discussion/forums/snipety.136/create-thread.";
if (stroka_2.Contains(stroka_1))
{
    return "нашли совпадение";
}
else
{
    return "не нашли совпадение";
}
 

TwistDanceR

Активный пользователь
Регистрация
30.05.2019
Сообщения
479
Благодарностей
200
Баллы
43
kino.1tv.ru - www.kino.1tv.ru - kino.1tv.tv - kino.1tv.info
co.lordfilm.cx - tr.lordfilm.co - bm.lordfilm.tv
Нужно всегда брать часть домена - lordfilm
Ну вот отсюда можно потанцевать.. а регулярка работает возвращая совпадение символов, а не полностью строку, если что-то там есть. На это идут условия и contains точно работает как надо.

Более четкое ТЗ можешь в телегу написать - помогу.
C#:
string url = new Uri("http://www.kino1.ru.tv.x/4to-proishodit/kakaya-to-neponyatnaya-ssilka.htm").Host;
return url;
 
  • Спасибо
Реакции: Roman48

Roman48

Client
Регистрация
28.02.2016
Сообщения
2 058
Благодарностей
742
Баллы
113
Ну вот отсюда можно потанцевать.. а регулярка работает возвращая совпадение символов, а не полностью строку, если что-то там есть. На это идут условия и contains точно работает как надо.

Более четкое ТЗ можешь в телегу написать - помогу.
C#:
string url = new Uri("http://www.kino1.ru.tv.x/4to-proishodit/kakaya-to-neponyatnaya-ssilka.htm").Host;
return url;
Похожее у меня есть, но она не решает того что мне нужно. Завтра смогу написать, сегодня сутки не спал, надо отдохнуть.
А это платно?
Вот пример ссылка в выдачи такая, а на самом деле она уже другая co.lordfilm.cx/3575-spartak-krov-i-pesok.html и может быть с другой доменной зоной, домены Роскомнадзором блокируются вебмастер меняет домен или просто поддомен делает, яндекс не успевает проиндексировать, а я в этой теме профиля нагуливаю
Короче надо убрать поддомен и доменную зону оставить только lordfilm чтобы было так.
Если по точкам регулярка (?<=\.).*(?=\.) то в другом случае эта регулярка не подойдет например так
lordfilm.cx/3575-spartak-krov-i-pesok.html
58231
 

Вложения

Hartwell

Client
Регистрация
25.09.2014
Сообщения
194
Благодарностей
117
Баллы
43

приведи к виду домена выше по ссылке куча вариантов

выбрать домены (нужно дописать если требуется 3ех уровенвые типо domain.uk.co
C#:
[\w-]+\.\w+$
ee512_ey5XB2n7bn.png


аналгично обратное верхней, т.е. выбираем все сабдоменны
C#:
([\w-]+\.)+(?=[\w-]+\.\w+$)

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

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)