気ままなUnityエンジニアブログ

新米Unityエンジニアが送る解説アウトプットブログです。Twitter : @UjinUnity

MENU

Python \n (改行コード) がついた文字列を削除したい (replace)

スポンサーリンク

f:id:Wojtek:20191029225320j:plain



前回のBot作成中に起こったできごとを赤裸々に書いていきます。


www.wojtekmt.com



ある文字列から特定の文字を削除したい! って思うときあると思います。

私は「Androidストアから引っ張ってきた最新のアプリバージョン」を文字列で取得する処理を実装しました。

ですが、引っ張ってきた文字列には「不要なモノ」が含まれていました。

こんな感じ

f:id:Wojtek:20191104232222p:plain


そう、文字列の最後に\n (改行コード) が含まれていたのです!

iOSでは起きなかったので意外でしたが、これが思わぬ曲者でした。

文字列を分割できないか調べる


pythonでの文字列の分割方法ザッとをまとめてみました。

  • split ・・・ 区切り文字を設定し分割する
  • rsplit・・・ 右側 ( 文字列後部 ) から分割する
  • splitlines ・・・ 改行コードがあったら分割


これを見るに splitlines を使うのが正しいと思いますが、改行コードで文字列が分割された後の処理が面倒だったため、

今回は replace を使って文字列から改行コードを削除しようと思います。

replace で改行コードを消す!


replace の使い方は以下のように記述します

  文字列.replace. ("削除 (置換) する前の文字列 " , "削除(置換)した後の文字列 " , 最大回数)


最大回数 については未設定で大丈夫です。


今回は改行コードの変更のためこのように記述しました!


 var text = appVersionText.replace("\n","")

これで text に appVersionの文字列から改行コードが削除された文字列が代入されます!


アプリバージョンの文字列だけ取得できるようになりました!


replace を使っても \n が削除されない場合


先ほどの設定を行っても文字列から改行コードが消えない人へ

私も同じ症状に悩まされました。


というのも、\n(改行コード)としてでなくただの文字列としてだった場合、replace や splitを使っても削除、分割はできません!


その場合の対象法は以下の通りです

var text = appVersionText.replace("\\",""). replace("n","")

\ と n の2つを別々に選択しなければなりません。

これで試してみてください。