import string
remove = string.punctuation
remove = remove.replace('-', '')
pattern = '[{}]'.format(remove)
txt = ")*^%{}[]thi's - is - @@#!a !%%!!%- test."
re.sub(pattern, '', txt)
Python regex, remove all punctuation except hyphen for unicode string