In perl s/[^\\w:]//g would replace all non alphanumeric characters EXCEPT :
In python I\'m using re.sub(r\'\\W+\', \'\',mystring)
You can specify everything that you need not remove in the negated character clas.
re.sub(r'[^\w'+removelist+']', '',mystring)
Test
>>> import re
>>> removelist = "=."
>>> mystring = "asdf1234=.!@#$"
>>> re.sub(r'[^\w'+removelist+']', '',mystring)
'asdf1234=.'
Here the removelist variable is a string which contains the list of all characters you need to exclude from the removal.
What does negated character class means
When the ^ is moved into the character class it does not acts as an anchor where as it negates the character class.
That is ^ in inside a character class say like [^abc] it negates the meaning of the character class.
For example [abc] will match a b or c where as [^abc] will not match a b or c. Which can also be phrased as anything other than a b or c