Hoe witruimte in een string te verwijderen

Jinku Hu 13 mei 2021 20 december 2019
  1. Verwijder aan het begin witruimte
  2. Verwijder aan het einde witruimte
  3. Verwijder witruimte aan het begin en het einde
  4. Verwijder alle witruimten
  5. Verwijder alleen de gedupliceerde witruimte
Hoe witruimte in een string te verwijderen

Hieronder ziet u hoe u de witruimten uit een tekenreeks kunt verwijderen. Het kan voornamelijk worden onderverdeeld in twee verschillende benaderingen, een daarvan is Python- str methoden, zoals str.split() en str.replace() ; de andere is de reguliere expressiemethode van Python.

We gebruiken de string " Demo Example " als de te verwerken string in de volgende voorbeelden.

Verwijder aan het begin witruimte

str.lstrip() methode

>>> demo = " Demo  Example  "
>>> demo.lstrip()
"Demo  Example  "

Hier str.lstrip() verwijdert methode de voorlooptekens die zijn opgegeven in het methode-argument. Als er geen argument wordt gegeven, worden alleen de voorloopruimten verwijderd.

Python regex-methode

>>> import re
>>> demo = " Demo  Example  "
>>> re.sub(r"^\s+", "", demo)
"Demo  Example  "

^ force regex vindt alleen de overeenkomende tekenreeks aan het begin, en \s betekent dat alle verschillende witruimten moeten worden aangepast, zoals witruimte, tab, return, etc. of met andere woorden, het is gelijk aan de verzameling van deze speciale tekens [ \t\n\r\f\v] . + geeft aan dat het zoveel mogelijk moet overeenkomen met witruimten.

Je kan verwijzen naar deze Python-handleiding voor reguliere expressies voor meer informatie over regex.

Verwijder aan het einde witruimte

str.rstrip() methode

In tegenstelling tot str.lstrip() dat strips de karakters aan het begin van de string, str.rstrip() strips de karakters aan het einde.

>>> demo = " Demo  Example  "
>>> demo.lstrip()
" Demo  Example"

Python regex-methode

Op dezelfde manier moet u een expressie gebruiken die overeenkomt met de witruimte aan het einde van de tekenreeks.

>>> import re
>>> demo = " Demo  Example  "
>>> re.sub(r"\s+$", "", demo)
" Demo  Example"

Verwijder witruimte aan het begin en het einde

str.strip() Methode

str.strip() is de combinatie van str.lstrip() en str.rstrip() om spaties aan het begin en het einde van de tekenreeks te verwijderen.

>>> demo = " Demo  Example  "
>>> demo.strip()
"Demo  Example"

Python regex- sub() methode

>>> import re
>>> demo = " Demo  Example  "
>>> re.sub(r"^\s+|\s+$", "", demo)
"Demo  Example"

Verwijder alle witruimten

Methode Python-string vervangen str.replace()

Het is niet nodig om de positie van de witte ruimte te controleren. Daarom kan je de str.replace() methode gebruiken om alle witruimten te vervangen door de lege tekenreeks.

>>> demo = " Demo  Example  "
>>> demo.replace(" ", "")
'DemoExample'

Python string regex vervang sub() methode

De regex-expressie kan alleen \s+ overeenkomen met de witruimte.

>>> import re
>>> demo = " Demo  Example  "
>>> re.sub(r"\s+", "", demo)
"DemoExample"

Verwijder alleen de gedupliceerde witruimte

Python string split methode str.split()

>>> demo = " Demo  Example  "
>>> " ".join(demo.split())
'Demo Example'

str.split() retourneert een lijst van de subtekenreeks in de tekenreeks, met witruimten als scheidingsteken.

Python regex split methode re.split()

>>> import re
>>> demo = " Demo  Example  "
>>> " ".join(re.split(r"\s+", demo)
" Demo Example "

Waarschuwing

De resultaten van re.split() en str.split() zijn verschillend, waar re.split() aan het begin of het einde van de lijst een lege tekenreeks staat als de tekenreeks witruimte op deze posities heeft, maar str.split() geen lege tekenreeks in het resultaat bevat.

Author: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn

Gerelateerde Artikelen - Python String