Pythonで文字列を置換する方法を、replace・回数指定・複数パターンの一括置換・re.sub による正規表現置換・改行や空白の除去まで実行しながら確認できます。 下のコードはブラウザ内でそのまま実行でき、「実行エディタで開く」を押すとprogoのオンラインPython実行環境にコードが読み込まれます。
s = "a-b-a-b"
print(s.replace("a", "X")) # X-b-X-b
print(s.replace("a", "X", 1)) # X-b-a-b(1回だけ)
▶ このコードを実行エディタで開く
s.replace("前", "後") で該当箇所をすべて置換します。s.replace("a", "X", 1) は先頭1個だけ。s = s.replace(...) と代入し直します。# 1) replace をつなげる
s = "2026/09/04"
print(s.replace("/", "-")) # 2026-09-04
# 2) 辞書とループで一括置換
text = "猫と犬と鳥"
table = {"猫": "cat", "犬": "dog", "鳥": "bird"}
for k, v in table.items():
text = text.replace(k, v)
print(text) # catとdogとbird
# 3) 1文字ずつの変換は translate が速い
print("abcabc".translate(str.maketrans({"a": "1", "b": "2"}))) # 12c12c
import re
# 連続する空白を1つにまとめる
print(re.sub(r"\s+", " ", "a b\t c")) # "a b c"
# 数字をすべて削除する
print(re.sub(r"\d", "", "a1b2c3")) # "abc"
# 電話番号のハイフンを除去
print(re.sub(r"[-()\s]", "", "03-1234-5678")) # "0312345678"
# マッチした部分を関数で加工(大文字化)
print(re.sub(r"[a-z]+", lambda m: m.group().upper(), "hello world")) # HELLO WORLD
s = " Hello \n"
print(s.replace("\n", "").strip()) # "Hello"(前後の空白も除去)
print("a,b,,c".replace(",", "")) # "abc"
name = "test_sample_test"
# 末尾の "_test" だけ消す
print(name[:-5] if name.endswith("_test") else name) # test_sample
# Python 3.9+ なら removeprefix / removesuffix
print(name.removesuffix("_test")) # test_sample
print(name.removeprefix("test_")) # sample_test