There are a few 3rd party modules that do this sort of thing. But there is a pretty solution using out of the box Python functionality. You don't have to install any dependencies if you use the
import re text = ' asdfladf ljklasfj 2324@#$@#$@#43-----hi' print re.sub(r'\W+', '-', text).strip('-')
Which will give you this pretty looking thing
And keep in mind that the
strip('-') will remove any preceding or trailing hyphens!