whitespace within a string

Bart Nessux bart_nessux at hotmail.com
Tue Feb 24 14:28:12 CET 2004


Jeff Epler wrote:
> You can use the magic of no-arg split() to do this:
>     def canonize_whitespace(s):
>         return " ".join(s.split())
> 
>     >>> canonize_whitespace("a  b\t\tc\td\t e")
>     'a b c d e'
> 
> A regular expression substituion can do the job too
>     def canonize_whitespace(s):
>         return re.sub('\s+', ' ', s)
> 
>     >>> canonize_whitespace("a  b\t\tc\td\t e")
>     'a b c d e'
>  
> Of course, if 'x=y' is accepted just like 'x = y' and 'x   =    y', then
> neither of these approaches is good enough.
> 
>     def canonize_config_line(s):
>         if not '=' in s: return s
>         a, b = s.split("=", 1)
>         return "%s = %s" % (a.strip(), b.strip())
>     >>> [canonize_config_line(s) for s in
>     ...        ['x=y', 'x\t=  y', '  x =    y ', "#z"]] 
>     ['x = y', 'x = y', 'x = y', '#z']
> 
> Jeff
> 

Thanks for the tip. I'll give it a try.




More information about the Python-list mailing list