- コーディングで入れたい値(文字列)から特定の文字列を消したかった
strip
を使用したところ、意図しないところまで消えてしまい困った
replace
で解決したのでmemo
背景
やったことと結果
- "id=dummy"のような値を扱っている時、"id="の部分を消して変数に格納したかった
〇〇.strip("id=")
としたら、dummyのdまで消えてummy
となった
原因
- 削除対象の文字列
id=
のうち"d"が削除後dummy
の先頭にあったため
- 削除後の文字列の先頭・最後に対象文字が含まれている場合は消えてしまう
strip
の仕様みたい
対策
- 結論:
replace
でやりたいことができた
〇〇.strip("id=)
で失敗
〇〇.replace("id=", "")
で意図した挙動に
コード
# 基本的には同じ結果になる
str1 = "Hello World!"
print(str1 + "の場合")
print("stripの結果 → " + str1.strip("World!"))
print("replaceの結果 → " + str1.replace("World!", ""))
print("----------")
# 一部のケースで意図しない文字がstripでは消える
str2 = "id=dummy"
print(str2 + "の場合")
print("stripの結果 → " + str2.strip("id="))
print("replaceの結果 → " + str2.replace("id=", ""))
コード結果
- 基本的にstripで問題ないが、場合によっては意図しない文字まで消えるケースがあるので注意
参考URL
コメント