Skip to content

Latest commit

 

History

History
36 lines (28 loc) · 1.47 KB

strip-string-prefix.md

File metadata and controls

36 lines (28 loc) · 1.47 KB
title shortTitle type language tags cover excerpt dateModified
A common mistake to avoid when stripping a prefix from a string in Python
Strip prefix from string
tip
python
string
cave-exploration
Using `str.lstrip()` to strip a prefix from a string might not be exactly what you're looking for. Here's what you should use instead.
2024-01-18

Let's say you have a string and you want to strip a prefix from it. For example, you have a string s = "Hello, World!" and you want to strip the prefix "Hello, ". You might be tempted to use str.lstrip() to do this.

s = "Hello, World!"
s.lstrip("Hello, ") # "World!"

This seems like it works alright, but let's try it with a few more examples to get a better idea of what's going on.

url = "www.google.com"
url.lstrip("www.") # "google.com"

other_url = "www.wikipedia.com"
other_url.lstrip("www.") # "ikipedia.com"

What's going on with that last one? you might be asking. Well, str.lstrip() actually expects a list of characters to strip from the string, not a prefix. So, when you pass it "www.", it strips all the characters in the string "www." from the start of the string. In fact, that's equal to passing it "w.".

So, str.lstrip() is not the right tool for the job after all. Instead, you should use str.removeprefix(). This method is designed to do exactly what you want - remove a prefix from a string.

url = "www.wikipedia.com"
url.removeprefix("www.") # "wikipedia.com"