文字列の末尾から部分文字列を削除するにはどうすればよいですか(文字列の接尾辞を削除)?質問する

文字列の末尾から部分文字列を削除するにはどうすればよいですか(文字列の接尾辞を削除)?質問する

次のコードがあります:

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

私は予想しました:abcdc

私が得たもの:abcd

今私がやります

url.rsplit('.com', 1)

もっと良い方法はあるでしょうか?


見るPython では .strip/.rstrip/.lstrip 文字列メソッドはどのように機能しますか?最初の試みが何を行っているのかを具体的に説明します。

ベストアンサー1

strip「この部分文字列を削除する」という意味ではありません。を文字セットとしてx.strip(y)扱い、そのセット内の文字を の両端から削除します。yx

Python 3.9以降では、removeprefixそしてremovesuffix文字列の両側から部分文字列全体を削除するメソッド:

url = 'abcdc.com'
url.removesuffix('.com')    # Returns 'abcdc'
url.removeprefix('abcdc.')  # Returns 'com'

関連するPython拡張提案はペップ616

Python 3.8以前では、endswithスライス:

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

または正規表現:

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

おすすめ記事