【Python】replace()を使って指定した文字列を置換する!
Pythonで指定した文字列を置換するにはreplace()を使用します。
replace()とは対象の文字列を指定した文字列に置換するメソッドであり、文字列の一部を別の文字列で置き換えることができます。
そのため、パラメータに置換したい値と、置換後の値を指定することができ、自分の希望の値に変更したい時に使用できる便利なメソッドです。
しかし、replace()メソッドは大文字と小文字は区別されるので文字列の置換は行われずそのままの文字列を返すようになり、文字列の置き換えができないパターンもありますので注意してください。
今回はPythonのreplace()メソッドを使って指定した文字列を置換する方法について以下の内容で解説します。
⚫︎ 文字列を置換する場合
⚫︎ 一致する全ての文字を置換する場合
⚫︎ 特定の文字列を消去する場合
⚫︎ 置換の回数を指定する場合
⚫︎ replace()で文字列を置換することができないパターン
⚫︎ replace()メソッドの実践的な使い方
目次
replace()とは
replace()は、指定された文字列を別の指定された文字列に置き換えることができるメソッドになります。
しかし、大文字・小文字が異なった場合は、置換の対象にならず置換されず、置換の対象がない場合は、そのまま元の文字列を返すようになります。
replace()の書き方
replace()の構文は下記となります。
1 |
replace(置換したい値, 置換後の値, 回数) |
パラメータは下記となります。
・置換したい値(必須)
置換したい値を文字列で指定する
・置換後の値(必須)
置換後の値を文字列で指定する
・回数
置き換える古い値の出現回数を数値で指定する
replace()にパラメータである置換したい値と置換後の値を指定して呼び出すことで置換したい値を置換後の値に置き換えることができます。
また、replace()にパラメータである回数を指定して呼び出すことで置換したい値を置換後の値に置き換える回数を設定することができます。
指定した文字列を置換するサンプルコード
replace()で指定した文字列を置換するサンプルコード紹介します。
文字列を置換する場合
文字を置換する場合はパラメータの置換したい値とパラメータの置換後の値を指定します。
例
1 2 3 4 5 6 |
str1 = 'ここの道を辿ってけば出口につくぞ!' str2 = str1.replace('つくぞ!', 'つくかもしれない!') print(str1) print(str2) |
出力結果
ここの道を辿ってけば出口につくぞ!
ここの道を辿ってけば出口につくかもしれない!
「つくぞ!」という文字列が「つくかもしれない!」に置換されました。
一致する全ての文字を置換する場合
一致する全ての文字を置換する場合は、先ほどと同じようにパラメータの置換したい値とパラメータの置換後の値を指定します。
同じ文字が入っているものは全て置換されます。
例
1 2 3 4 |
str1 = 'happy Birthday!' str2 = str1.replace('y', 'Y') print(str1) print(str2) |
出力結果
happy Birthday!
happY BirthdaY!
「y」が全て「Y」に置換されました。
特定の文字列を消去する場合
特定の文字列を消去するには、パラメータの置換後の値に空文字(「”」もしくは「””」)を指定します。
例
1 2 3 4 5 |
str1 = 'あけましておめでとうございます。ここの文字を削除してください。' str2 = str1.replace('ここの文字を削除してください。', "") print(str1) print(str2) |
出力結果
あけましておめでとうございます。ここの文字を削除してください。
あけましておめでとうございます。
置換後の値に空文字(“”)を指定することで、特定の文字を削除することができました。
置換の回数を指定する場合
置換の回数を指定するにはパラメータである回数を指定します。
回数を指定することで、置換の対象があったとしても回数がオーバーしていたら置換は行われません。
例
1 2 3 4 5 |
str1 = 'ああああああああああああああああああああああああ' str2 = str1.replace('あ', 'ア' , 10) print(str1) print(str2) |
出力結果
ああああああああああああああああああああああああ
アアアアアアアアアアああああああああああああああ
回数を10と指定した為、置換は行われますが、10回以降は置換されていません。
その為、残りは置換されず、「あ」として表示されています。
replace()で文字列を置換することができないパターン
また、replace()で文字列を置換することができないパターンがあります。
大文字と小文字である場合
大文字と小文字である場合はreplace()で文字列の置換を行うことができません。
例
1 2 3 4 5 6 7 |
str1 = 'ABCDEFG' str2 = str1.replace('abcdefg', 'abcdefg') print('・置換前') print(str1) print('・置換後') print(str2) |
出力結果
・置換前
ABCDEFG
・置換後
ABCDEFG
relace()は大文字と小文字は区別するようになります。
そのため、大文字のアルファベットはありますが、小文字のアルファベットは見つかりませんので、replace()はそのままの文字列が返すようになります。
置換する値が見つからない場合
置換する値が見つからない場合こちらも同じくreplace()で文字列の置換を行うことができません。
例
1 2 3 4 5 6 7 |
str1 = 'ここの文字列を置換しよう。' str2 = str1.replace('バナナ', '置換できた。') print('・置換前') print(str1) print('・置換後') print(str2) |
出力結果
・置換前
ここの文字列を置換しよう。
・置換後
ここの文字列を置換しよう。
「ここの文字列を置換しよう。」という文字列の中に「バナナ」という文字列はありませんので、replace()はそのままの文字列が返すようになります。
リスト等の要素を置換する方法
replace()は文字列だけでなくリスト等の要素を置換する場合にも使用することができます。
例1
1 2 3 4 5 6 7 8 9 10 11 12 |
name1 = ["田中", "鈴木", "木村", "三浦"] name2 = [] print("置換前:", name1) for name in name1: name_item = name.replace("木村", "中本") name2.append(name_item) print("置換後:", name2) |
出力結果
置換前: [‘田中’, ‘鈴木’, ‘木村’, ‘三浦’]
置換後: [‘田中’, ‘鈴木’, ‘中本’, ‘三浦’]
repalce()によってリストの要素が置換されて表示されています。
また、回数を指定してリストの要素を置換した場合for文では一つずつ要素を取り出して置換を行う為、取り出すたびに回数がリセットされます。
その為、回数を指定しても意味がありません。
例2
1 2 3 4 5 6 7 8 9 10 11 12 |
name1 = ["田中", "田中"", "田中"", "三浦"] name2 = [] print("置換前:", name1) for name in name1: name_item = name.replace("田中", "中本", 2) name2.append(name_item) print("置換後:", name2) |
出力結果
置換前: [‘田中’, ‘田中’, ‘田中’, ‘三浦’]
置換後: [‘中本’, ‘中本’, ‘中本’, ‘三浦’]
置換の回数を2回に設定していますが、3回置換が行われています。
そのため、「田中」が全て「中本」に置き換わっています。
replace()の実践的な使い方
replace()の実践的な使い方を紹介していきます。
簡易なキーボードを作成してみる
replace()のメソッドを使って簡易なキーボード作成してみます。
例2
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
def wordchange(inputtext): if "ko" in inputtext: inputtext = inputtext.replace("ko", "こ") if "nn" in inputtext: inputtext = inputtext.replace("nn", "ん") if "ni" in inputtext: inputtext = inputtext.replace("ni", "に") if "ti" in inputtext or "chi" in inputtext: inputtext = inputtext.replace("ti", "ち") inputtext = inputtext.replace("chi", "ち") if "ha" in inputtext: inputtext = inputtext.replace("ha", "は") return inputtext inputText = wordchange("konnnitiha") print(inputText) |
出力結果
こんにちは
replace()を使って簡易なキーボードを作成することができます。
そのため、「konnnitiha」と打つと「こんにちは」と変換されて表示されています。
今回のポイント
replace()で文字列を置換
⚫︎ Pythonで指定した文字列を置換するにはreplace()を使用する
⚫︎ replace()で文字を置換するにはreplace()にパラメータである置換したい値と置換後の値を指定する
(一致する全ての文字を置換する場合も同様)
⚫︎ replace()で特定の文字列を消去するには、replace()にパラメータである置換後の値に空文字(「”」もしくは「””」)を指定する
⚫︎ replace()で置換の回数を指定するにはreplace()にパラメータである回数を指定する
(回数がオーバーしていたら置換は行われない)
⚫︎ replace()は大文字と小文字である場合や置換する値が見つからない場合は文字列を置換することができない
(そのままの値を返すようになる)
⚫︎ replace()は文字列だけでなくリスト等の要素を置換する場合にも使用することができる
ST
株式会社flyhawkのSTです。フライテックメディア事業部でのメディア運営・ライター業務なども担当。愛機はMac Book AirとThinkPad。好きな言語:swift、JS系(Node.js等)。好きなサーバー:AWS。受託開発やプログラミングスクールの運営をしております。ご気軽にお問い合わせください。