Comment supprimer une sous-chaîne de la fin d'une chaîne en Python ?

J'ai le code suivant :

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

Je m'attendais à : abcdc.

J'ai obtenu : abcd

Maintenant, je fais

url.rsplit('.com', 1)

Y a-t-il un meilleur moyen ?

Solution

strip ne signifie pas "supprimer cette sous-chaîne&quot ;. x.strip(y) traite y comme un ensemble de caractères et retire tous les caractères de cet ensemble des extrémités de x.

À la place, vous pouvez utiliser endswith et le découpage en tranches :

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

Ou utiliser des expressions régulières :

import re
url = 'abcdc.com'
url = re.sub('\.com$', '', url)
Commentaires (10)

Pourquoi pas url[:-4] ?

Commentaires (0)

C'est une utilisation parfaite des expressions régulières :

>>> import re
>>> re.match(r"(.*)\.com", "hello.com").group(1)
'hello'
Commentaires (1)