2013-07-16 10 views

Antwort

10

Es sieht aus wie Sie auch Leerzeichen entfernen möchten. Sie etwas tun können,

>>> import re 
>>> s = "abc \n \t \t\t \t \nefg" 
>>> s = re.sub('\s+', '', s) 
>>> s 
'abcefg' 

Ein anderer Weg wäre zu tun,

>>> s = "abc \n \t \t\t \t \nefg" 
>>> s = s.translate(None, '\t\n ') 
>>> s 
'abcefg' 
+0

Parameter für 'translate()' in Python geändert> 3. Es braucht jetzt eine Übersetzungstabelle, die von 'str.maketrans()' generiert werden kann. https://docs.python.org/3/library/stdtypes.html#str.translate – gruentee

3

So:

import re 

s = 'abc \n \t \t\t \t \nefg' 
re.sub(r'\s', '', s) 
=> 'abcefg' 
6

Einige weitere nicht-regex Ansätze für Vielfalt:

>>> s="abc \n \t \t\t \t \nefg" 
>>> ''.join(s.split()) 
'abcefg' 
>>> ''.join(c for c in s if not c.isspace()) 
'abcefg' 
+1

Dies ist deutlich schneller als re. – seth

+0

@seth: Ich denke '' translate' 'kommt normalerweise in diesen Spielen als Sieger raus, wo es anwendbar ist. Ich interessiere mich einfach nicht für Regexps. : ^) – DSM

Verwandte Themen