Try running these three sequences, in order:
Code:
Search: ([>\s])\"\;(.*?[^\s])\"\;([<\s])
Replace: \1“\2”\3
Search: ([>\s])\"\;(.*?[^\s])\&rdquo\;([<\s])
Replace: \1“\2”\3
Search: ([>\s])\&ldquo\;(.*?[^\s])\"\;([<\s])
Replace: \1“\2”\3
You can replace the entity names with whatever characters you need, such as " or ', or other appropriate entity names, such as British single-quotes, or cyrillic double-angle quotes, etc.
Don't forget to notice the "literal" slashes if you modify the expression.
It should properly ignore the quotation marks inside of HTML tags. Nonetheless, experiment with care.
I've modified this slightly from my NoteTab use to suit Sigil -- it may have errors -- if anyone notices, please inform and update.
Aloha.