Помогите плиз с регуляркой

WebGomel
На сайте с 29.10.2011
Offline
78
455

Так как в составлении регулярных выражений я полный ноль, прошу помощи знатоков :o

В общем имеется дамп базы сайта, в которую нехорошие люди насовали несколько тысяч ссылок, которые оттуда нужно напрочь удалить.

Ссылки эти выглядят так:

<a href="http://spamsite.ru/spam.php"><img src="http://site.ru/images/blank.png" border="0" style="border: 0"></a>

Где spamsite.ru/spam.php всегда разная ссылка, то есть на разные страницы разных сайтов, и с разным расширением, то есть .php, .html, .asp и так далее.

site.ru/images/blank.png всегда одна и та же картинка.

Собственно помогите, пожалуйста, с регуляркой для notepad++, которая всю эту прелесть сможет вычистить, но при этом не уничтожит вообще все ссылки. У этих как бы отличительная черта - эта картинка, у нормальных ссылок её нет.

Удалённый системный администратор ( https://remadmin.com )
doctorpc
На сайте с 12.07.2009
Offline
112
#1

В Sublime вот такую штуку только что протестировал.


<a.*<img src="http://site.ru/images/blank.png" border="0" style="border: 0"></a>

Nopepad++ уже забыл. Регулярка будет, само собой такой же, но на сколько удобно пользоваться, незнаю.

Если хотите, можете постучать в контакты в профиле, очищу Вам дамп, чтобы самому не устанавливать Sublime.

siv1987
На сайте с 02.04.2009
Offline
427
#2

<a href="http://(www\.)?(spamsite\.ru|spamsite2\.ru|spamsite3\.ru)/[^"]+"[^>]*>.*?</a>

домены spamsite все таки придется прописывать, иначе по другому никак.

LEOnidUKG
На сайте с 25.11.2006
Offline
1774
#3

Всё проще.

1.Удаляйте все:

<img src="http://site.ru/images/blank.png" border="0" style="border: 0">

У вас получиться:

<a href="http://spamsite.ru/spam.php"></a>

2. Регуляркой:

Искать:

<a href=.*?></a>

Заменить на:

<img src="http://site.ru/images/blank.png" border="0" style="border: 0">

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
siv1987
На сайте с 02.04.2009
Offline
427
#4
LEOnidUKG:
1.Удаляйте все:

Ну если при условии что все анкоры одинаковы, тогда

<a href="http://[^"]+"[^>]*><img src="http://[^"]+?blank\.png" border="0" style="border: 0"></a>

doctorpc
На сайте с 12.07.2009
Offline
112
#5
siv1987:

домены spamsite все таки придется прописывать, иначе по другому никак.

А чем мой вариант не подходит, при условии, что редактор поддерживает регулярные выражения с "ленивой квантификацией"?

Повторюсь, прежде чем писать, протестировал.

LEOnidUKG
На сайте с 25.11.2006
Offline
1774
#6
siv1987:
Ну если при условии что все анкоры одинаковы, тогда

Доброе утро :)

Это в ТЗ написано:

site.ru/images/blank.png всегда одна и та же картинка.
siv1987
На сайте с 02.04.2009
Offline
427
#7
LEOnidUKG:
Это в ТЗ написано:

А кто его читает.. :)

doctorpc:
А чем мой вариант не подходит, при условии, что редактор поддерживает регулярные выражения с "ленивой квантификацией"?

Имхо, даже с ленивой квантификацией (не жадной) то этот вариант все равно отхватит лишнего с первого '<a' до первого встречного '<img src'. Если даже учесть, что переводы строк точкой не будут соответствовать, лучше все же написать более конкретно - <a [^>]+>

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий