python – How do I remove a substring from the end of a string?
python – How do I remove a substring from the end of a string?
strip
doesnt mean remove this substring. x.strip(y)
treats y
as a set of characters and strips any characters in that set from both ends of x
.
On Python 3.9 and newer you can use the removeprefix
and removesuffix
methods to remove an entire substring from either side of the string:
url = abcdc.com
url.removesuffix(.com) # Returns abcdc
url.removeprefix(abcdc.) # Returns com
The relevant Python Enhancement Proposal is PEP-616.
On Python 3.8 and older you can use endswith
and slicing:
url = abcdc.com
if url.endswith(.com):
url = url[:-4]
Or a regular expression:
import re
url = abcdc.com
url = re.sub(.com$, , url)
If you are sure that the string only appears at the end, then the simplest way would be to use replace:
url = abcdc.com
print(url.replace(.com,))
python – How do I remove a substring from the end of a string?
def strip_end(text, suffix):
if suffix and text.endswith(suffix):
return text[:-len(suffix)]
return text