本記事ではPythonで文字列を置換する方法を3つご紹介していきます。
1つ目の方法:replaceを使う
まず1つ目の方法として、replaceを使う方法があります。
この方法が最も分かりやすく、よく使われるものだと思われます。
gist1838dc8f8643ecf6db4df4df7fcce19a
そしてreplaceを使った例と結果は上記です。
3行目では、【ab】を【1】に置換するだけの最も分かりやすい使い方となっています。
7行目は、【replace("置換される文字","置換する文字",変更回数)】というreplace関数で【変更回数】を記入したものとなります。
10行目は、文字を置換するのではなく削除する場合です。
最後に13行目は、何回も置換する場合の方法となっています。
これは行数を減らすことはできますが、可読性を損なう可能性があるため、複数行に分けた方がいいと思われます。
2つ目の方法:translateを使う
次にtranslateを使って置換する方法をご紹介していきます。
gist2a51898bfb9f69299f72cee75a7a887d
translate関数を使った方法は、上記の通りです。
3行目は【a】を【1】に、【c】を【2】に置換しています。
7行目は、文字を置換するのではなく削除したい場合【None】を入れる方法となります。
最後に10行目ですが、こちらはエラー文が出力されることでしょう。
理由として、translateは1文字しか変換できないからです。
※記事によっては可能とありますが、これはPythonのバージョンによるもののようです。
また、この方法で使用されているmaketrans関数とは、文字のマッピング変換テーブルを作成する関数であり、詳細は下記の記事をご覧ください。
3つ目の方法:re.subを使う
最後にre.sub関数を使って置換する方法についてご紹介していきます。
gist4a7bf98e7eee7e4e10659899fa964fc6
re.sub関数を使った方法は、上記となります。
※例は分かりやすい今までの書式に合わせていますが、importは先頭に記載するようにしてください。
5行目は、基本的な使い方となり【a】を【1】に置換するだけのものです。
9行目は、replace関数と同じで痴漢回数を最後に指定したものとなります。
12行目から少し複雑となり、[a-c]を【x】に置換する、つまり【a、b、c】を1文字ずつ【x】に置換するものです。
最後に15行目ですがこちらはかなり複雑で、置換される文字列は【[a-b]+c】とあります。
これは【a , b】のみの文字列の最後に【c】が含まれている文字列を、【z】に置換するものとなっています。
str1の1文節目【ababcdcd】を例にして、【a , b】のみの文字列を黄色、【c】を水色に色分けすると
ababcdcd
上記のようになります。
そして置換される文字列は【[a-b]+c】、つまり黄色→水色の順になっている場所であり、そこを【z】に置換した結果として【zdcd】となります。
ここで注意点として、今回の場合必ず黄色→水色の順でないと置換されないため、水色のみであったり黄色のみであったりする場合は置換されていません。
具体例を挙げるとstr1の第2文節の最後が、黄色の身であった場合に当たります。
参考記事
基本的な内容については、上記の記事を参考にしました。
処理時間も考慮する場合は、上記の記事を参考にしてみてください。
本記事の内容は以上となります。
Pythonで文字列を置換する場合の基本知識となるため、初心者の方はぜひ忘れないようにしてください。
本記事は以上です。お疲れさまでした。