Πώς μπορώ να αφαιρέσω μια υποσειρά από το τέλος μιας συμβολοσειράς στην Python;

Έχω τον ακόλουθο κώδικα:

url = 'abcdc.com'
print(url.strip('.com'))

Περίμενα: abcdc

Πήρα: abcd

Τώρα κάνω

url.rsplit('.com', 1)

Υπάρχει καλύτερος τρόπος;

Λύση

Το strip δεν σημαίνει "αφαιρέστε αυτή την υποπερίοδο". Το x.strip(y) αντιμετωπίζει το y ως ένα σύνολο χαρακτήρων και αφαιρεί οποιουσδήποτε χαρακτήρες αυτού του συνόλου από τα άκρα του x.

Αντ' αυτού, θα μπορούσατε να χρησιμοποιήσετε το endswith και το slicing:

url = 'abcdc.com'
if url.endswith('.com'):
    url = url[:-4]

Ή χρησιμοποιώντας κανονικές εκφράσεις:

import re
url = 'abcdc.com'
url = re.sub('\.com$', '', url)
Σχόλια (10)

Τι θα λέγατε για το url[:-4];

Σχόλια (0)

Αυτή είναι μια τέλεια χρήση για τις κανονικές εκφράσεις:

>>> import re
>>> re.match(r"(.*)\.com", "hello.com").group(1)
'hello'
Σχόλια (1)