Pythonで文字列を置換する

この記事は、文字列の置換について説明します。

複雑な置換をする場合は、正規表現を使えるreモジュールのsub関数を使います。
手軽に置換するなら、文字列.replaceで置換できます。

正規表現を使えるre.sub

正規表現を使って、文字列を置換したいときはre.subです。

old = 'abc123def456'
new = re.sub('[0-9]', '*', old)

print(old)
print(new)

# abc123def456
# abc***def***
# 数字を隠してみる。

old = 'abc123def456'
new = re.sub('[0-9]+', '', old)

print(old)
print(new)

# abc123def456
# abcdef
# 数字を削除する。

re.subの1番目の引数は正規表現のパターンなのですが、正規表現っぽくない使い方もできます。

old = 'abcabcabc'
new = re.sub('b', 'c', old)

print(old)
print(new)

# abcabcabc
# accaccacc
# 正規表現っぽくない使い方もできる。

置換回数を指定できます。

old = 'abcabcabc'
new = re.sub('b', 'c', old, 2)

print(old)
print(new)

# abcabcabc
# accaccabc
# 置換個数を設定できる。

最後に、re.subの仕様書です。

文字列.replace

文字列からスペースを削除したい、みたいな単純な文字列置換には文字列.replaceです。

old = 'abcde'
new = old.replace('b', 'c')

print(old)
print(new)

# abcde
# accde

old = 'abcde'
new = old.replace('bcd', '@')

print(old)
print(new)

# abcde
# a@e
# 複数の文字の変換も可能。

置換だけではなく、削除にも使えます。

old = 'a b c'
new = old.replace(' ', '')

print(old)
print(new)

# a b c
# abc
# 半角スペースの削除。

old = 'あ い う え お'
new = old.replace(' ', '')

print(old)
print(new)

# あ い う え お
# あいうえお
# 全角スペースの削除。

old = 'あ い う え お'
new = old.replace(' ', ' ')

print(old)
print(new)

# あ い う え お
# あ い う え お
# 全角スペースを半角スペースに変換。

置換回数を指定できます。

old = 'aaaaaa'
new = old.replace('a', 'b', 2)

print(old)
print(new)

# aaaaaa
# bbaaaa
# 置換個数を設定できる。

最後に、str.replaceの仕様書です。