diff --git a/searx/engines/__init__.py b/searx/engines/__init__.py index c17a53f4..081b69d3 100644 --- a/searx/engines/__init__.py +++ b/searx/engines/__init__.py @@ -112,12 +112,14 @@ def highlight_content(content, query): query_regex = '({0})'.format(re.escape(query)) content = re.sub(query_regex, '\\1', content, flags=re.I) else: + regex_parts = [] for chunk in query.split(): if len(chunk) == 1: - query_regex = '(\W+{0}\W+)'.format(re.escape(chunk)) + regex_parts.append('\W+{0}\W+'.format(re.escape(chunk))) else: - query_regex = '({0})'.format(re.escape(chunk)) - content = re.sub(query_regex, '\\1', content, flags=re.I) + regex_parts.append('{0}'.format(re.escape(chunk))) + query_regex = '({0})'.format('|'.join(regex_parts)) + content = re.sub(query_regex, '\\1', content, flags=re.I) return content