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

Leave a Reply

Your email address will not be published. Required fields are marked *