ZebroidФорумПубличный разделВопросыРегулярные выражения/Подсчет количества тегов

Регулярные выражения/Подсчет количества тегов

16 июня 2017, 02:06
Зарегистрирован: 27 мая 2017, 09:36
Здравствуйте,
подскажите как можно реализовать такую задачу:
Большое количество спарсенного контента, разбитого по файлам .txt,
Часто (около 10%) попадается «хлам» в виде — вместо контента(нормальная статья), парсер ошибочно спарсил меню сайта,
Меню это всегда большой список
<ul><li>
… и т.д.,
Моя идея? — с помощью регулярки подсчитать количество тега
<li>
в файле и если больше, допустим 20 = каким то образом перемещать в папку "! Чистка"/выделять/удалять и т.п., другими словами — замучался вручную чекать(визуально выискивать «хлам») списки по 1000 текстов))
Помогите, кто знает, как можно в рамках Зеброида элегантно решить такую задачу!
P.S. В регулярках не силен, третий день изучаю\ковыряю… пока безрезультатно.
вот тут ковыряю regex101.com/r/ypt8yi/1

Комментарий отредактирован 7 раз(а). Последний раз редактировал AlexKoho 16 июня 2017, 02:16.
16 июня 2017, 18:03
Зарегистрирован: 10 апреля 2012, 00:00
Здравствуйте.

В идеале было бы использовать «Черный список» инструмента Чистка заголовков и статей, но так получилось, что я обнаружил в нем баг — HTML теги удаляются вне зависимости от того активирована опция «Не учитывать HTML теги при поиске» или нет. Этот баг я исправлю, а пока можно делать следующим образом:

1. В поиске и замене запускаем следующую регулярку:
Найти: ((?:<li[^>]*>.*?</li>\s*){20,})
_SITE_MENU_\1

Она добавит перед li, которых больше 20 штук подряд слово _SITE_MENU_

2. Используя черный список инструмента Чистка заголовков и статей — ищем и переносим статьи, в которых есть слово "_SITE_MENU_"

16 июня 2017, 18:54
Зарегистрирован: 27 мая 2017, 09:36
Спасибо огромное и низкий поклон тебе ЧЕЛОВЕЧИЩЕ!!!
Уже протестил — все ОК! То что требовалось!