Как отчистить список от мусора

backoff

Client
Регистрация
20.04.2015
Сообщения
6 052
Благодарностей
6 482
Баллы
113
Есть список доменов, там много мусора. Например есть урлы со знаками вопроса, или знак + ...
При использовании "удалить строки" в списке, эти знаки выдают ошибку, так как регулярное выражение не может правильно понять что от него нужно.

и еще один вопрос, как удалить все поддомены, чтобы был только главный домен.
и удалить все после слеша, который идет после доменной зоны
Спасибо.

пример:
go/38/?date=16.08.2013
dic.nsf/dic_synonims…<b>сердито</b>
yandex.ru/images
ru.wikipedia.org

может это можно сделать в notepad++ ?
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 407
Благодарностей
9 117
Баллы
113
служебные символы (+ и т.д.) нужно экранировать слешами..
как вариант, перед удалением пропустить последовательность (переменную с нею) через экшен Обработка текста - Escape строки,
он заэкранирует все что нужно..
 

backoff

Client
Регистрация
20.04.2015
Сообщения
6 052
Благодарностей
6 482
Баллы
113
как 7 млн строк заэскейпить ? :-)
списком можно как-то запилить?
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 407
Благодарностей
9 117
Баллы
113
как 7 млн строк заэскейпить ? :-)
списком можно как-то запилить?
эскейпить только то что собираешься удалять в данный момент из списка (признак для удаления)..
 

backoff

Client
Регистрация
20.04.2015
Сообщения
6 052
Благодарностей
6 482
Баллы
113
в принципе все осилил, но не смог написать регулярку.
Как удалить любой поддомен?

пример:

123.123.ru
123-123.123.com
123-123-123.123-123.org
под-домен.какой-то-сайт.рф

то есть надо чтоб осталось только

123.ru
123.com
123-123.org
какой-то-сайт.рф

но в списке так же много доменов уже первого уровня, так что стандартный метод зенки не подойдет
я через нотепад удалил поддомены этого типа:
123.123.ru
blabla.site.com

само выражение:
ищем - (.*)\.([a-z]+)\.([a-z]+)
заменяем на - \2.\3

но он не пашет, если есть знак тире -

хелп
 

ibred

Client
Регистрация
04.04.2015
Сообщения
3 835
Благодарностей
3 552
Баллы
113

backoff

Client
Регистрация
20.04.2015
Сообщения
6 052
Благодарностей
6 482
Баллы
113
вот сработало, кроме доменов на кирилице

ищем - (.*)\.(.*)\.([a-z]+)
заменяем - \2.\3
 

ibred

Client
Регистрация
04.04.2015
Сообщения
3 835
Благодарностей
3 552
Баллы
113
вот сработало, кроме доменов на кирилице

ищем - (.*)\.(.*)\.([a-z]+)
заменяем - \2.\3
Я Вам выше отправил рабочий вариант поиска поддоменов, включая кириллицу. Читайте тему внимательней.
 
  • Спасибо
Реакции: backoff

backoff

Client
Регистрация
20.04.2015
Сообщения
6 052
Благодарностей
6 482
Баллы
113
опять потребовалось сделать тоже самое.
ваш вариант не работает...

если есть например 1.2.3.4.5.сайт.ру

напишите плиз конкретно что надо искать и на что надо заменить
спасибо
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
опять потребовалось сделать тоже самое.
ваш вариант не работает...

если есть например 1.2.3.4.5.сайт.ру

напишите плиз конкретно что надо искать и на что надо заменить
спасибо
[\w-]+\.\w+$ - выделить домен
([\w-]+\.)+(?=[\w-]+\.\w+$) - выделить поддомены
Хотя, скорее всего, я что-то не так понял в задании
 
  • Спасибо
Реакции: udder и seodamage

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 122
Баллы
113
Обработка текста - Regex
Код:
[\w-]+\.\w+(?=/|\n|$)
 

backoff

Client
Регистрация
20.04.2015
Сообщения
6 052
Благодарностей
6 482
Баллы
113

udder

Client
Регистрация
28.03.2017
Сообщения
618
Благодарностей
128
Баллы
43

Benf

Client
Регистрация
06.03.2018
Сообщения
4
Благодарностей
0
Баллы
1
Здравствуйте, столкнулся со следующей проблемой, нужно собрать со страницы сайта все доменные имена, без под доменов и того что идет после доменного имени,
[\w-]+\.\w+(?=/|\n|$)
это регулярное выражение отлично справляется в текстовом документе, но в моем случае еще есть теги и они мешают, видоизменил регулярное выражение до такого вида [\w-]+\.\w+(?=/|<|\n|$), оно стало парсить все что нужно но теперь оно цепляет почтовые домены и еще 1 элемент, они мне не нужны, весь день сегодня голову ломаю над решением задачи, так и не смог найти его


примеры: грубо говоря это текст страницы на котором я произвожу поиск

<td>[email protected]</td>
<td>[email protected]</td>
<td>https://www.facebook.com</td>
<td>https://twitter.com</td>
<td>https://pl.metin2.gameforge.com</td>
<td>https://lms.loanme.pl/</td>
<td>https://learningapps.org/</td>
<td>https://konto.play.pl</td>
<td>https://freakymon.com</td>
<td>https://chomikuj.pl/figo54321/eJay+(program+do+tworzenia+muzyki)</td>
<td>https://chomikuj.pl/</td>
<td>https://allegro.pl/</td>
<td>https://accounts.google.com</td>
<td>https://accounts.epicgames.com</td>
<td>http://chomikuj.pl</td>
<td>http://board.pixelmon.pl</td>
">DL 1.2M</button>


когда использую это регулярное выражение [\w-]+\.\w+(?=/|\n|$)

в результатах остается только это
loanme.pl
learningapps.org
chomikuj.pl
chomikuj.pl
allegro.pl

когда использую свое которое видоизменил до такого вида [\w-]+\.\w+(?=/|<|\n|$)
результат получается таким какой должен быть,
facebook.com
twitter.com
gameforge.com
loanme.pl
learningapps.org
play.pl
freakymon.com
chomikuj.pl
chomikuj.pl
allegro.pl
google.com
epicgames.com
chomikuj.pl
pixelmon.pl

но еще появляются почтовые домены и немного левой инфы
gmail.com
poczta.fm
1.2M



помогите пожалуйста добавить к моему регулярному выражению еще стоп символы "@" и "знак пробела" чтоб не брало лишнего
 

baracuda

Client
Регистрация
19.06.2013
Сообщения
793
Благодарностей
279
Баллы
63
а кириллицу как бы прикрутить. было бы вообще шикарно
 

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