У меня есть собственный фильтр, который выделяет ключевые слова, которые пользователь вставил в строку поиска (как в поиске Google). Однако, на данный момент, это только выделяет последнее слово ключевых слов. Например, если ключевыми словами являются «Американская киноиндустрия», будет выделена только «индустрия». Но я хочу, чтобы все три слова были выделены, когда и где бы они ни находились на веб-странице (даже если они не рядом друг с другом). Чтобы рассматривать строку ключевых слов как отдельные слова, я разделил ключевые слова:
def highlight(value, search_term, autoescape=True):
search_term_list = search_term.split()
search_term_word = ''
for search_term_word in search_term_list:
pattern = re.compile(re.escape(search_term_word), re.IGNORECASE)
new_value = pattern.sub('<span class="highlight">\g<0></span>', value)
return mark_safe(new_value)
Есть идеи, почему фильтр выделяет только последнее слово и как заставить код работать?