Pythonで文字列の最後から部分文字列を削除するには?

以下のようなコードがあります。

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

I expected: abcdc.

私が得たのはabcd です。

ここで、私は

url.rsplit('.com', 1)

他に良い方法はありますか?

ソリューション

stripは "remove this substring" という意味ではありません。x.strip(y)は、yを文字の集合として扱い、その集合の中の任意の文字をxの両端から取り除きます。

代わりに、endswithとスライスを使うことができます。

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)