Python re.sub() メソッド

Python re モジュール


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)

実行結果の予想:

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)

実行結果の予想:

Java is good, Python is great

例3:正規表現を使用した置換

例

import re

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)

実行結果の予想:

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)

実行結果の予想:

苹果4个,香蕉6个,橙子9个

Python re モジュール

その他の拡張