Как упростить конструкцию фильтра

vipuncle

A-Parser Pro License
A-Parser Pro
Нужно фильтровать по ~20 признакам, как это сделать проще?
0adb0-clip-64kb.png
 
А какое условие фильтра должно быть?
 
Как на скрине, мне нужно собрать урл с определенными доменами (cn|jp|kr|vn) и т.д.
 
если я правильно понял, вместо contain string выбери regex match и регулярку туда впихни что-то вроде (http|https)://(.*)\.(com|cn|jp|com\.cn)/(.*) за правильность регулярки не уверен, не тестил.
 
На скрине у вас следующий фильтр (на данный момент несколько фильтров работают между собой только в режиме И):
  • источник фильтра - $query, т.е. сам запрос
  • определяется вхождение строк .ir/ И .jp/ И .cn/
Таким образом, если все строки будут в запросе, то результат будет выведен. Что очень маловероятно, т.к. вы используете парсер HTML::LinkExtractor, на вход подаете ссылки, и в одной ссылке сразу 3 доменные зоны врятли будут...
мне нужно собрать урл с определенными доменами (cn|jp|kr|vn) и т.д.
Чтобы это сделать, вам нужно:
  • выбрать правильный источник фильтра. Например $intlinks, если вы хотите фильтровать внутренние ссылки.
  • определиться с логикой фильтра. Если стоит задача фильтровать на вхождение хотя бы одного признака, то можно сделать, как советовали выше: тип фильтра RegEx match, регулярка \.ir/|\.jp/|\.cn/
В общей сложности задание будет выглядеть так:
PDtnT.png

P.S. Уникализация включена для исключения повторов в примере.

Рекомендуемые ссылки:
http://a-parser.com/wiki/filter/
http://a-parser.com/threads/1738/ - раздел Фильтры
 
Пробую регулярку на тест вот здесь http://rubular.com/r/3ibBC8c0c9 не работает
потому что в регулярке есть http или https, а также слеш в конце, а в тех линках, на которых ты её опробовал - нету(в природе не существует же таких линков, без протокола, но слеш при желании можно убрать), плюс сервис говорил о том, что надо слеши экранировать в регулярке, что я и сделал, после чего всё заработало: http://f4.s.qip.ru/8walhgNb.png :)
 
Назад
Верх