Python re.sub() メソッド
re.sub()は、Pythonreモジュール内でマッチした項目を置換するための関数です。
このメソッドは文字列内でマッチするすべての部分文字列を検索し、指定された内容に置換します。
単語の意味: subsubstitute (置換) の略です。
基本構文とパラメータ
構文形式
re.sub(pattern, repl, string, count=0, flags=0)
パラメータの説明
- pattern: マッチさせる正規表現
- repl: 置換テキスト。文字列または関数を指定可能
- string: 元の文字列
- count: 置換する最大回数。0はすべて置換
- flags: 正規表現フラグ
関数の説明
- 戻り値: 置換後の新しい文字列を返します。
例
例1:基本置換
例
import re
text = "Python is good, Python is great"
# Python を Java に置換
result = re.sub(r'Python', 'Java', text)
print(result)
text = "Python is good, Python is great"
# Python を Java に置換
result = re.sub(r'Python', 'Java', text)
print(result)
実行結果の予想:
Java is good, Java is great
例2:置換回数の指定
例
import re
text = "Python is good, Python is great"
# 最初の1つだけを置換
result = re.sub(r'Python', 'Java', text, count=1)
print(result)
text = "Python is good, Python is great"
# 最初の1つだけを置換
result = re.sub(r'Python', 'Java', text, count=1)
print(result)
実行結果の予想:
Java is good, Python is great
例3:正規表現を使用した置換
例
import re
text = "私の携帯番号は 138-1234-5678"
# 携帯番号の中央4桁を **** に置換
result = re.sub(r'\d{4}', '****', text)
print(result)
text = "私の携帯番号は 138-1234-5678"
# 携帯番号の中央4桁を **** に置換
result = re.sub(r'\d{4}', '****', text)
print(result)
実行結果の予想:
我的手机号是 138-****-5678
例4:グループ参照を使用
例
import re
text = "2024-04-02"
# 年・月・日の順序を入れ替え
result = re.sub(r'(\d{4})-(\d{2})-(\d{2})', r'\3/\2/\1', text)
print(result)
text = "2024-04-02"
# 年・月・日の順序を入れ替え
result = re.sub(r'(\d{4})-(\d{2})-(\d{2})', r'\3/\2/\1', text)
print(result)
実行結果の予想:
02/04/2024
例5:関数を置換内容として使用
例
import re
text = "リンゴ3個、バナナ5個、オレンジ8個"
# 数字を 数字+1 に置換
def add_one(match):
return str(int(match.group()) + 1)
result = re.sub(r'\d+', add_one, text)
print(result)
text = "リンゴ3個、バナナ5個、オレンジ8個"
# 数字を 数字+1 に置換
def add_one(match):
return str(int(match.group()) + 1)
result = re.sub(r'\d+', add_one, text)
print(result)
実行結果の予想:
苹果4个,香蕉6个,橙子9个
その他の拡張