diff --git a/searx/engines/__init__.py b/searx/engines/__init__.py
index c17a53f46..081b69d3e 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