diff --git a/searx/engines/__init__.py b/searx/engines/__init__.py
index 2abf1610c..c17a53f46 100644
--- a/searx/engines/__init__.py
+++ b/searx/engines/__init__.py
@@ -25,6 +25,7 @@ from urlparse import urlparse
from searx import settings
import ConfigParser
import sys
+import re
from datetime import datetime
engine_dir = dirname(realpath(__file__))
@@ -106,8 +107,17 @@ def highlight_content(content, query):
# TODO better html content detection
if content.find('<') != -1:
return content
- for chunk in query.split():
- content = content.replace(chunk, '{0}'.format(chunk))
+
+ if content.lower().find(query.lower()) > -1:
+ query_regex = '({0})'.format(re.escape(query))
+ content = re.sub(query_regex, '\\1', content, flags=re.I)
+ else:
+ for chunk in query.split():
+ if len(chunk) == 1:
+ query_regex = '(\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)
return content