Remove whitespace in Python using string.whitespace
Python's string.whitespace is great:
>>> string.whitespace
'\t\n\x0b\x0c\r '
How do I use this with a string without resorting to manually typing in '\t|\n|... etc for regex?
For example, it should be able to turn: "Please \n don't \t hurt \x0b me."
into
"Please don't hurt me."
I'd probably want to keep the single spaces, but it'd be easy enough to just go string.whitespace[:-1] I suppose.
There is a special-case shortcut for exactly this use case!
If you call str.split
without an argument, it splits on runs of whitespace instead of single characters. So:
>>> ' '.join("Please \n don't \t hurt \x0b me.".split())
"Please don't hurt me."
What's wrong with the \s
character class?
>>> import re
>>> pattern = re.compile(r'\s+')
>>> re.sub(pattern, ' ', "Please \n don't \t hurt \x0b me.")
"Please don't hurt me."