Як видалити підрядок з кінця рядка в Python?

Я маю наступний код:

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

Я очікував: abcdc.

Я отримав: abcd.

Тепер я знаю.

url.rsplit('.com', 1)

Чи є кращий спосіб?

Рішення

Зачистити не означає "видалити цей підрядок". Функція 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)