Remove all special characters, punctuation and spaces from string

user664546 picture user664546 · Apr 30, 2011 · Viewed 570.1k times · Source

I need to remove all special characters, punctuation and spaces from a string so that I only have letters and numbers.

Answer

user225312 picture user225312 · Apr 30, 2011

This can be done without regex:

>>> string = "Special $#! characters   spaces 888323"
>>> ''.join(e for e in string if e.isalnum())
'Specialcharactersspaces888323'

You can use str.isalnum:

S.isalnum() -> bool

Return True if all characters in S are alphanumeric
and there is at least one character in S, False otherwise.

If you insist on using regex, other solutions will do fine. However note that if it can be done without using a regular expression, that's the best way to go about it.