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
関連の記事