Python replace 文字列を置換する

Pythonの文字列を置換するサンプルです。(確認環境:Python 3)

目次

サンプル replaceとは
  文字列を置き換える(replace)
  指定した文字や空白を削除する(replace)
  正規表現で文字を置き換える(sub)

replaceとは

変数 = 文字列.replace( 置換対象の文字列, 変換後の文字列 [,  置換する回数] )
  • 文字列に対して、1つめの引数の文字列を2つめの引数の文字列に変換します。
  • 3つめの引数は、置換する回数です。置換対象の文字列が5個あって、置換する回数に2を指定すると文字列の左から2個を置換します。
  • 戻り値は、新しい文字列です。変換前の文字列は変更されません。

文字列を置き換える(replace)

# coding: utf-8

a = "あいうーあいう"

# 2つめの引数が1文字
print(a.replace("あ", "A"))  # AいうーAいう
print(a.replace("あい", "A"))  # AうーAう

# 2つめの引数が複数文字
print(a.replace("あ", "AB"))  # ABいうーABいう
print(a.replace("あい", "AB"))  # ABうーABう

# 置換する回数を指定
print(a.replace("あ", "A", 1))  # Aいうーあいう

6-11行目は、一致した文字をすべて置換します。
14行目は、マッチした1つ目のみ置換します。

 

文指定した文字や空白を削除する(replace)

replaceの2つめの引数に空文字を指定することで文字の削除に使用できます。

# coding: utf-8

str1 = "あいうえお"
print(str1.replace("う", ""))  # あいえお

str2 = " あ い う +1  "
print(str2.replace(" ", ""))  # あいう+1

 

正規表現で文字を置き換える(sub)

subは正規表現を使用できます。2行目のようにimport reが必要です。

# coding: utf-8
import re

str1 = "あいうーあいう"
reg1 = r'[あう]'  # 正規表現 「あ」または「う」
print(re.sub(reg1, "a", str1))  # aいaーaいa

str2 = "--12345--"
reg2 = r'[0-9]{5}'  # 正規表現 0から9の5桁
print(re.sub(reg2, "*****", str2))  # --*****--

str3 = "--123451--"  # 数値が6桁
reg3 = r'[0-9]{5}'
print(re.sub(reg3, "*****", str3))  # --*****1--

str4 = "--1234512345--"  # 2回マッチするので注意
reg4 = r'[0-9]{5}'
print(re.sub(reg4, "*****", str4))  # --**********--

str5 = "--1234512345--" 
reg5 = r'[0-9]{5}' # 置換する回数を指定
print(re.sub(reg5, "*****", str5, 1))  # --*****12345--

22行目は、3つめの引数に1を指定しているので1回目のマッチ時のみ置換します。

以下は、python公式ドキュメントのreplaceメソッドのリンクです。
https://docs.python.jp/3/library/stdtypes.html#str.replace

関連の記事

Python 文字列の位置を取得する(find/index)
Python split 文字列を分割してリストにする

△上に戻る