python3で後ろから文字を削除したい(rstrip,replace)

うどんくん作

pyhton3にて,

 

文字列の後ろから任意の文字列を削除したい時使える関数を紹介します。

 

rstrip関数 使い方

文字列.rstrip(任意の文字列)

 

プログラムコード

S="ABCD"
r="BCD"
ans=S.rstrip(r)
print(ans)

出力結果

A

 

rstrip関数の罠

rstrip関数では、削除する任意の文字列の順番まで判別しません。

プログラムコード

S="ABCD"
s="DBC"
ans=S.rstrip(s)
print(ans)

出力結果

A

rstrip関数では、削除する任意の文字列の順番まで判別しません。

プログラムコード

S="ABCDBCD"
s="BCD"
ans=S.rstrip(s)
print(ans)

出力結果

A

 

どうしても後ろから指定の文字列の削除を行いたい場合にはreplace関数を使いましょう。

replace関数 使い方

文字列.replace("置換前の文字" , "置換後の文字" , 置換回数)

 

replace関数は文字を置換する関数ですが置換後の文字列を""にすることで文字の削除に利用することもできます。

ただしreplace関数は文字列の先頭から処理を始めるので後ろから処理する際には文字列を逆転して処理をしましょう。

文字列の逆転は

文字列[::-1]

で行うことができます。

 

プログラムコード

S="BCDABCDBCD"
s="BCD"
S=S[::-1]
s=s[::-1]
ans=S.replace(s,"",1)
ans=ans[::-1]
print(ans)

出力結果

BCDABCD

 

これで完成です。

最後に逆転しなおすのを忘れないようにしましょう。