diff --git a/src/calibre/utils/mreplace.py b/src/calibre/utils/mreplace.py index c4b70836cd..eb2059f0d3 100644 --- a/src/calibre/utils/mreplace.py +++ b/src/calibre/utils/mreplace.py @@ -1,4 +1,5 @@ # multiple replace from dictionnary : http://code.activestate.com/recipes/81330/ +from __future__ import unicode_literals __license__ = 'GPL v3' __copyright__ = '2010, sengian ' __docformat__ = 'restructuredtext en' @@ -22,7 +23,10 @@ class MReplace(UserDict): def compile_regex(self): if len(self.data) > 0: keys = sorted(self.data, key=len, reverse=True) - tmp = "(%s)" % "|".join(map(re.escape, keys)) + if isinstance(keys[0], bytes): + tmp = b"(%s)" % b"|".join(map(re.escape, keys)) + else: + tmp = "(%s)" % "|".join(map(re.escape, keys)) if self.re != tmp: self.re = tmp if self.case_sensitive: