Python удаляет пунктуацию из строки unicode, кроме апострофа

Я нашел несколько тем, и я нашел это решение:

sentence=re.sub(ur"[^\P{P}'|-]+",'',sentence) 

Это должно удалить все знаки препинания, кроме ", проблема в том, что он также удаляет все остальное из предложения.

Пример:

 >>> sentence="warhol's art used many types of media, including hand drawing, painting, printmaking, photography, silk screening, sculpture, film, and music." >>> sentence=re.sub(ur"[^\P{P}']+",'',sentence) >>> print sentence ' 

конечно, я хочу сохранить предложение без знаков препинания, а «уорхола» остается, как есть

Желаемый результат:

 "warhol's art used many types of media including hand drawing painting printmaking photography silk screening sculpture film and music" "austro-hungarian empire" 

Изменить: я также попытался использовать

 tbl = dict.fromkeys(i for i in xrange(sys.maxunicode) if unicodedata.category(unichr(i)).startswith('P')) sentence = sentence.translate(tbl) 

но это отделяет каждую пунктуацию

    Укажите все элементы, которые вы не хотите удалить, т. Е. \w , \d , \s и т. Д. Это то, что означает оператор ^ в квадратных скобках. (соответствует чему угодно, кроме)

     >>> import re >>> sentence="warhol's art used many types of media, including hand drawing, painting, printmaking, photography, silk screening, sculpture, film, and music." >>> print re.sub(ur"[^\w\d'\s]+",'',sentence) warhol's art used many types of media including hand drawing painting printmaking photography silk screening sculpture film and music >>>