Если вы удалите все лишние пробелы при удалении одной кавычки в окружении пробелов, вы можете использовать следующее регулярное выражение:
(?<= ) *' +|'(?= )|(?<= )'
Regex demo
import re
re.sub("(?<= ) *' +|'(?= )|(?<= )'", '', str)
Python demo
Python 'regex engine выполняет следующие операции.
(?<= ) # The following match must be preceded by a space
* # match 0+ spaces
' # match a single paren
+ # match 1+ spaces
| # or
' # match a single paren
(?= ) # single paren must be followed by a space
| # or
(?<= ) # The following match must be preceded by a space
' # match a single paren
(?<= )
is положительный взгляд за спиной ; (?= )
- это позитивный прогноз .
Обратите внимание, что это вызывает проблемы с "Gus 'gal" и "Это - ночь перед большим матчем по боулингу", где одиночные кавычки должны не подлежит удалению.