【Python】文字列を置換する4つの方法(replace/ translate/ re.sub,/re.subn)について解説!

文字列を置換する際に思い出すのはreplace()メソッドだと思います。

しかし、文字列を複数置換したい場合、replace()メソッドでは置換の対象が1文字である為、何回も呼び出すのは面倒です。
その場合、translate()メソッドを使用すると、置換の対象の文字列を複数選択し、それぞれで置換することができます。

このように文字列を置換する方法はreplace()メソッド以外にもありますので、場合によって使い分けるようにしましょう。

今回は文字列を置換する以下の4つの方法について解説します。
replace()メソッド
ranslate()メソッド
re.sub()関数
re.subn()関数

replace()とは

replace()メソッドは、指定された文字列を別の指定された文字列に置き換えます。

replace()の書き方

replace()の構文は下記となります。

replace()メソッドについて詳しく知りたい場合は【Python】replace()メソッドを使って指定した文字列を置換する!サンプルコード付き!をご参照ください。

translate()とは

translate()メソッドは、複数の一文字を、一度に別の新しい複数の一文字に置換することができます。

translate()の書き方

translate()の構文は下記となります。

変換テーブルを使用して、マッピングテーブルに従って、指定された文字列の文字を置換します。
変換テーブルは、静的メソッドmaketrans()によって作成されます。

re.sub()とは

re.sub()メソッドは、reモジュールを使用して、正規表現で文字列を置換します。

re.sub()の書き方

re.sub()の構文は下記となります。

パラメータの指定の仕方はほとんど変わりませんが、引数に対象の文字列を指定します。

re.subn()とは

re.subn()メソッドとは、reモジュールを使用して、置換処理された文字列と置換した部分の個数とのタプルを返します。

re.subn()の書き方

re.subn()の構文は下記となります。

パラメータの指定の仕方はほとんど変わりませんが、こちらも引数に対象の文字列を指定します。

それぞれのメソッドを使って文字列を置換

それぞれのメソッドを使って文字列を置換します。

replace()の場合

replace()メソッドで文字列を置換するには引数の置換したい値と引数の置換後の値を指定します。

出力結果

おはようございます。いい天気ですね。
おはようございます。いい天気で気持ちがいいですね。

「すね。」という文字列が「気持ちがいいですね。」に置換されました。

translate()の場合

translate()の場合はmaketrans()によってテーブルを作成し、マッピングテーブルに従って、指定された文字列の文字を変換します。

例1

出力結果

AイウエOAいうえO

また、translate()を使って、下記のように文字列を置換することもできます。

例2

出力結果

最初の文字列 あいうえおか
変換後の文字列: くけこさ

「あいうえおか」から「かきくけこさ」へ置換されますが、「あい」の部分を除いた状態になる為、最終的に「くけこさ」に置換されました。

re.sub()の場合

re.sub()関数を使って文字列を置換します。

d例

出力結果

EXAMPLE@example

re.sub()関数によって文字列を置換することができました。

re.subn()の場合

re.subn()関数を使って文字列を置換します。
re.subn()関数の場合は、置換後の値と、置換した回数がタプルとなって返します。

出力結果

EXAMPLE@@example
(‘EXAMPLE@EXAMPLE’, 2)

EXAMPLE@EXAMPLE
2

置換後の文字列と、置換した回数がタプルとなって表示されています。

Writer
壷井

壷井

株式会社flyhawkの壷井です。フライテックメディア事業部でのメディア運営・ライター業務なども担当。愛機はMac Book AirとThinkPad。好きな言語:swift、JS系(Node.js等)。好きなサーバー:AWS。受託開発やプログラミングスクールの運営をしております。ご気軽にお問い合わせください。

最新の案件情報

フリーランスエンジニアの案件探し