Rather than seek out specific unwanted chars, you could remove everything not wanted:
re.sub('[^\\s!-~]', '', my_str)
This throws away all characters not:
- whitespace (spaces, tabs, newlines, etc)
- printable "normal" ascii characters (
!
is the first printable char and~
is the last under decimal 128)
You could include more chars if needed - just adjust the character class.