Добрый день! Паршу снипеты бинга, всего их собирается штук 30, а мне надо только 3 рандомных предложения из этой кучи текста. Может подсказать как отфильтровать?
Добрый день. Это легко решается с помощью шаблонизатора: объединяем все сниппеты в одну строку из нее парсим регулярным выражением предложения рандомно берем нужное кол-во предложений и выводим, удаляя выведенные предложения из массива, чтобы исключить повторы Код: [% sentences = p1.serp.format('$snippet. ').match('([A-BА-Я][^.!?]{30,}(?:[.!?]|$))', 1); USE Math; FOREACH i IN [1..3]; sentences.splice(Math.int(Math.rand(sentences.size)), 1).0 _ "\n"; END %]
А как тут же сделать объединяем все сниппеты в одну строку из нее парсим регулярным выражением предложения выводим все, исключая повторы У меня всегда полчуается ARRAY(0x119115a0) Спасибо.
Просто выведите массив, например, через .join: Код: sentences.join("\n"); Повторы удалять нужно уникализацией по строке.