diff --git a/src/calibre/ebooks/conversion/utils.py b/src/calibre/ebooks/conversion/utils.py index cbc8b41529..91141af1d1 100644 --- a/src/calibre/ebooks/conversion/utils.py +++ b/src/calibre/ebooks/conversion/utils.py @@ -157,7 +157,7 @@ class HeuristicProcessor(object): ITALICIZE_STYLE_PATS = [ ur'(?msu)(?<=[\s>"“\'‘])_(?P[^_]+)_', - ur'(?msu)(?<=[\s>"“\'‘])/(?P[^/\*>]+)/', + ur'(?msu)(?<=[\s>"“\'‘])/(?P[^/\*><]+)/', ur'(?msu)(?<=[\s>"“\'‘])~~(?P[^~]+)~~', ur'(?msu)(?<=[\s>"“\'‘])\*(?P[^\*]+)\*', ur'(?msu)(?<=[\s>"“\'‘])~(?P[^~]+)~', @@ -172,8 +172,11 @@ class HeuristicProcessor(object): for word in ITALICIZE_WORDS: html = re.sub(r'(?<=\s|>)' + re.escape(word) + r'(?=\s|<)', '%s' % word, html) + def sub(mo): + return '%s'%mo.group('words') + for pat in ITALICIZE_STYLE_PATS: - html = re.sub(pat, lambda mo: '%s' % mo.group('words'), html) + html = re.sub(pat, sub, html) return html