Я пишу скрипт на Perl, который ищет термин в больших частях текста. То, что я хотел бы отобразить обратно пользователю, - это небольшая часть текста вокруг поискового термина, чтобы пользователь мог иметь контекст использования этого поискового термина. Результаты поиска Google являются хорошим примером того, чего я пытаюсь достичь, когда контекст вашего поискового запроса отображается под заголовком ссылки.
Мой основной поиск использует это:
if ($text =~ /$search/i ) {
print "${title}:${text}\n";
}
($ title содержит заголовок элемента, в котором был найден поисковый запрос)
Это слишком много, потому что иногда $ text будет содержать сотни строк текста.
Это будет отображаться в Интернете, поэтому я мог бы просто предоставить заголовок в виде ссылки на фактический текст, но для пользователя нет контекста.
Я пытался изменить свое регулярное выражение для захвата 4 слов до и 4 слов после поискового запроса, но столкнулся с проблемами, если поисковый запрос был в самом начале или в конце $ text.
Что было бы хорошим способом сделать это? Я попытался выполнить поиск CPAN, потому что уверен, что у кого-то есть модуль для этого, но я не могу придумать правильные условия для поиска. Я бы хотел бы сделать это без модулей, если это возможно, потому что установка модулей здесь - это боль. У кого-нибудь есть идеи?