Ich habe eine Textzeichenfolge, die mit einer Anzahl von Leerzeichen beginnt und zwischen 2 und 4 variiert.
Was ist der einfachste Weg, um das führende Leerzeichen zu entfernen? (dh alles vor einem bestimmten Zeichen entfernen?)
" Example" -> "Example"
" Example " -> "Example "
" Example" -> "Example"
Die lstrip()
-Methode entfernt führende Leerzeichen, Zeilenumbrüche und Tabulatorzeichen an einem Zeichenfolgenanfang:
>>> ' hello world!'.lstrip()
'hello world!'
Bearbeiten
Wie Balpha in den Kommentaren hervorhob , um only Leerzeichen vom Anfang der Zeichenkette zu entfernen, sollte lstrip(' ')
verwendet werden:
>>> ' hello world with 2 spaces and a tab!'.lstrip(' ')
'\thello world with 2 spaces and a tab!'
Verwandte Frage:
Die Funktion strip
entfernt Leerzeichen am Anfang und Ende eines Strings.
my_str = " text "
my_str = my_str.strip()
wird my_str
bis "text"
.
Wenn Sie die Leerzeichen vor und hinter dem Wort entfernen möchten, behalten Sie die mittleren Leerzeichen bei.
Du könntest benutzen:
Word = ' Hello World '
stripped = Word.strip()
print(stripped)
Verwenden Sie einen regulären Ausdruck, um alles vor einem bestimmten Zeichen zu entfernen:
re.sub(r'^[^a]*', '')
alles bis zum ersten 'a' entfernen. [^a]
kann durch eine beliebige Zeichenklasse ersetzt werden, z. B. durch Word-Zeichen.
Die Frage befasst sich nicht mit mehrzeiligen Zeichenfolgen. Hier sehen Sie jedoch, wie Sie führende Leerzeichen aus einer mehrzeiligen Zeichenfolge entfernen, indem Sie Pythons Standardbibliotheks-Textumbruchmodul verwenden. Wenn wir eine Zeichenfolge hätten wie:
s = """
line 1 has 4 leading spaces
line 2 has 4 leading spaces
line 3 has 4 leading spaces
"""
wenn wir print(s)
, würden wir eine Ausgabe erhalten wie:
>>> print(s)
this has 4 leading spaces 1
this has 4 leading spaces 2
this has 4 leading spaces 3
und wenn wir textwrap.dedent
benutzt haben:
>>> import textwrap
>>> print(textwrap.dedent(s))
this has 4 leading spaces 1
this has 4 leading spaces 2
this has 4 leading spaces 3