Python|文字列の置換

1. はじめに

Pythonで文字列を扱う際によく使われるのが文字列の置換です。文字列の一部を他の文字や単語に置き換える処理は、データの整形や前処理、ログの書き換え、テンプレートの動的生成など、実務でも頻出の操作です。
本記事では、replace()メソッドを中心に、Pythonにおける文字列置換の基本から応用、注意点まで、初心者にもわかりやすく解説します。

 

2. Pythonでの文字列置換の基本

2-1. replace()メソッドの基本構文

Pythonでは、文字列オブジェクトのreplace()メソッドを使って、指定した文字列を別の文字列に置き換えることができます。

text = "Pythonは楽しい"
new_text = text.replace("楽しい", "面白い")
print(new_text)

実行結果:

Pythonは面白い

2-2. replace()の引数の意味

replace(old, new, count)の形式で使います。

  • old: 置換対象の文字列
  • new: 置換後の文字列
  • count: (任意)置換する回数。指定しない場合はすべて置換されます。
sentence = "apple apple apple"
result = sentence.replace("apple", "orange", 2)
print(result)

実行結果:

orange orange apple

 

3. よくある使い方・応用例

3-1. ファイル内の文字列を一括置換

テキストファイル内の特定の単語を一括で置換する処理は、ログの整形や設定ファイルの変更などによく使われます。

# ファイルの内容を読み込み、特定文字列を置換して再保存
with open("sample.txt", "r", encoding="utf-8") as f:
    content = f.read()

content = content.replace("旧会社名", "新会社名")

with open("sample.txt", "w", encoding="utf-8") as f:
    f.write(content)

3-2. 改行や空白の除去にも使える

replace()は空白や改行の除去にも使えます。ただし、空白全体を削除したい場合はstr.replace(" ", "")などと指定します。

text = "  Python\nは\n楽しい  "
cleaned = text.replace("\n", "").replace(" ", "")
print(cleaned)

実行結果:

Pythonは楽しい

3-3. 複数パターンを一括置換(辞書とループ)

複数の単語を一度に置換したい場合、辞書を使ってループ処理で対応できます。

text = "Python is awesome. Python is fun."
replacements = {
    "Python": "JavaScript",
    "awesome": "cool",
    "fun": "exciting"
}

for old, new in replacements.items():
    text = text.replace(old, new)

print(text)

実行結果:

JavaScript is cool. JavaScript is exciting.

 

4. 注意点・エラー対策

4-1. 元の文字列は変更されない

replace()は元の文字列オブジェクトを変更せず、新しい文字列を返します。元の変数に代入しないと、置換は反映されません。

text = "Python"
text.replace("Python", "Java")
print(text)  # 書き換わっていない

実行結果:

Python

↓ 正しくはこうします:

text = "Python"
text = text.replace("Python", "Java")
print(text)

実行結果:

Java

4-2. 正規表現と混同しない

replace()は単純な文字列一致による置換で、正規表現は使えません。正規表現で置換したい場合はre.sub()を使います。

import re

text = "abc123def456"
result = re.sub(r"\d+", "#", text)  # 数字部分を "#" に置換
print(result)

実行結果:

abc#def#

 

5. まとめ

  • replace()を使えば文字列の一部を簡単に置換できる
  • 置換回数の制限も可能
  • 複数単語の置換は辞書+ループで効率化できる
  • 正規表現が必要な場合はre.sub()を活用

文字列の置換処理は、実務でもデータの前処理やテンプレート処理など幅広い場面で活躍します。特にWeb開発やデータ分析の前段階では、文字列整形の精度が成果物の品質に直結することもあります。
ぜひ、基本から応用までマスターしておきましょう!

タイトルとURLをコピーしました