【Python】文字列を置換する4つの方法(replace/translate/re.sub/re.subn)について解説!
文字列を置換する際に思い出すのはreplace()メソッドだと思います。
しかし、文字列を複数置換したい場合、replace()メソッドでは置換の対象が1文字である為、何回も呼び出すのは面倒です。
その場合、translate()メソッドを使用すると、置換の対象の文字列を複数選択し、それぞれで置換することができます。
このように文字列を置換する方法はreplace()メソッド以外にもありますので、場合によって使い分けるようにしましょう。
今回はPythonで文字列を置換する4つの方法について以下内容で解説していきます。。
⚫︎ replace()を使って文字列を置換する場合
⚫︎ translate()を使って文字列を置換する場合
⚫︎ re.sub()を使って文字列を置換する場合
⚫︎ re.subn()を使って文字列を置換する場合
目次
文字列の置換とは
置換とは、あるものを他のものに置き換えることをいい、今回紹介する文字列の置換とは、指定した文字列を自分が変えたい文字列へ置き換えることをいいます。
例えば、キーボードの」ように「ka」と打つと「か」に変換されますが、これも文字列の置換が行われています。
replace()とは
replace()メソッドは、指定された文字列を別の指定された文字列に置き換えます。
replace()の書き方
replace()の構文は下記となります。
1 |
replace(置換したい値, 置換後の値, 回数) |
replace()の引数である置換したい値と置換後の値を指定して使用することで、対象の文字列を置換後の値に置き換えることができます。
translate()とは
translate()メソッドも、文字列を置換するメソッドになりますが、複数の一文字を、一度に別の新しい複数の一文字に置換することができます。
translate()の書き方
translate()の構文は下記となります。
1 |
translate(テーブル) |
変換テーブルを使用して、マッピングテーブルに従って、指定された文字列の文字を置換します。
変換テーブルは、静的メソッドであるmaketrans()によって作成されます。
re.sub()とは
re.sub()メソッドは、reモジュールを使用して、正規表現で文字列を置換します。
re.sub()の書き方
re.sub()の構文は下記となります。
1 2 3 |
import re re.sub(正規表現, 置換する値, 置換後の値, 対象の文字列, 回数)) |
パラメータの指定の仕方はほとんど変わりませんが、引数に対象の文字列を指定します。
re.subn()とは
re.subn()メソッドとは、reモジュールを使用して、置換処理された文字列と置換した部分の個数とのタプルを返します。
re.subn()の書き方
re.subn()の構文は下記となります。
1 |
re.subn(置換する値, 置換後の値, 対象の文字列, 回数) |
パラメータの指定の仕方はほとんど変わりませんが、こちらも引数に対象の文字列を指定します。
文字列を置換するサンプルコード
それぞれのメソッドを使った文字列を置換するサンプルコードを紹介します。
replace()を使って文字列を置換する場合
replace()を使って文字列を置換行ってみます。
replace()メソッドで文字列を置換する場合は引数の置換したい値と引数の置換後の値を指定します。
例
1 2 3 4 5 |
str1 = 'おはようございます。いい天気ですね。' str2 = str1.replace('すね。', '気持ちがいいですね。') print(str1) print(str2) |
出力結果
おはようございます。いい天気ですね。
おはようございます。いい天気で気持ちがいいですね。
replace()によって文字列の置換が行われています。
そのため、「すね。」という文字列が「気持ちがいいですね。」に置換されて表示しています。
もし、replace()メソッドで文字列を置換する方法について詳しく知りたい場合はこちらを参照ください。
translate()を使って文字列を置換する場合
translate()を使って文字列を置換行ってみます。
translate()を使って文字列を置換する場合は、引数であるmaketrans()によってテーブルを作成し、マッピングテーブルに従って、指定された文字列の文字を変換します。
例
1 2 3 4 |
str1 = 'アイウエオあいうえお' print(str1.translate(str.maketrans({'あ': 'A', 'ア': 'A', 'い': 'I', 'イ': 'I','う': 'U', 'ウ': 'U', 'え': 'E', 'エ': 'E','お': 'O', 'オ': 'O'}))) |
出力結果
AIUEOAIUEO
translate()によって文字列の置換が行われています。
その為、「あ」と「ア」が「A」、「い」と「イ」が「I」、「う」と「ウ」が「U」、「え」と「エ」が「E」、「お」と「オ」が「O」に置き換わって表示されています。
もし、translate()メソッドで文字を置換する方法について詳しく知りたい場合はこちらを参照ください。
re.sub()を使って文字列を置換する場合
re.sub()を使って文字列を置換行ってみます。
例
1 2 3 4 5 |
import re mail = 'example@example' print(re.sub('example', 'EXAMPLE', mail, 1 )) |
出力結果
EXAMPLE@example
re.sub()によって文字列を置換することができました。
re.subn()を使って文字列を置換する場合
re.subn()関数を使って文字列の置換を行ってみます。
re.subn()で文字列を置換する場合は、置換後の値と、置換した回数がタプルとなって返されるようになります。
例
1 2 3 4 5 6 7 8 9 10 11 |
import re mail = 'example@example' x = re.subn('example', 'EXAMPLE', mail) print(x) print(type(x)) print(x[0]) print(x[1]) |
出力結果
EXAMPLE@@example
(‘EXAMPLE@EXAMPLE’, 2)
EXAMPLE@EXAMPLE
2
置換後の文字列と、置換した回数がタプルとなって表示されています。
今回のポイント
文字列を置換するには4つの方法がある
⚫︎ Pythonで文字列を置換するにはreplace()、 translate()、re.sub()、re.subn()の4つのどれかを使用する
ST
株式会社flyhawkのSTです。フライテックメディア事業部でのメディア運営・ライター業務なども担当。愛機はMac Book AirとThinkPad。好きな言語:swift、JS系(Node.js等)。好きなサーバー:AWS。受託開発やプログラミングスクールの運営をしております。ご気軽にお問い合わせください。