Python Regexで文字列置換を使う方法
Grace Collins
Solutions Engineer · Leapcell

Key Takeaways
- Pythonの
re.sub()
は、柔軟なパターンベースの文字列置換を可能にします。 - グルーピングと後方参照は、一致したコンテンツの再構築に役立ちます。
- 関数は、動的なカスタム置換に使用できます。
正規表現(regex)は、文字列の検索と操作のための強力なツールです。Pythonでは、re
モジュールを使用することで、開発者はregexベースの検索と置換操作を効率的に実行できます。この記事では、Pythonのregexを使用して部分文字列をre.sub()
で置換する方法について説明します。
re
モジュールのインポート
Pythonでregexを使用するには、まず組み込みのre
モジュールをインポートします。
import re
re.sub()
の基本的な使用法
regex置換に使用される主な関数はre.sub(pattern, repl, string)
です。これは、string
内のpattern
の重複しないすべての一致を検索し、それらを文字列repl
で置換します。
例1:数字を記号で置換する
import re text = "注文番号:12345" result = re.sub(r'\d', '*', text) print(result)
出力:
注文番号:*****
説明:パターン\d
は任意の数字に一致し、すべての数字が*
で置換されます。
グループを使用した置換
括弧()
を使用して一致の一部をキャプチャし、\1
、\2
などを使用して置換文字列でそれらを参照できます。
例2:日付の再フォーマット
text = "今日は2025-04-09です" result = re.sub(r'(\d{4})-(\d{2})-(\d{2})', r'\2/\3/\1', text) print(result)
出力:
今日は04/09/2025です
説明:このregexは、年、月、日を別々にキャプチャし、MM/DD/YYYY形式で再配置します。
動的な置換のための関数の使用
一致の置換方法をより詳細に制御したい場合は、repl
引数として関数を渡すことができます。
例3:インクリメント番号
def add_one(match): number = int(match.group()) return str(number + 1) text = "レベル:1、2、3" result = re.sub(r'\d+', add_one, text) print(result)
出力:
レベル:2、3、4
説明:この関数は各数値を取得し、1ずつインクリメントします。
フラグと大文字と小文字を区別しない置換
re.sub()
関数は、大文字と小文字の区別などの修飾子用のflags
パラメータを受け入れます。
例4:大文字と小文字を区別しない置換
text = "Hello hello HeLLo" result = re.sub(r'hello', 'hi', text, flags=re.IGNORECASE) print(result)
出力:
hi hi hi
結論
Pythonのre.sub()
は、単純な置換、グループベースの並べ替え、さらには関数を使用した動的な置換をサポートする多用途の関数です。regexパターンを適切に使用することで、わずか数行のコードで強力なテキスト処理タスクを実行できます。
FAQs
re.sub()
関数は、regexベースの置換を実行するために使用されます。
はい、関数をre.sub()
に渡すことで、各一致をプログラムで変換できます。
キャプチャグループを使用し、\1
、\2
などを使用して置換文字列でそれらを参照します。
私たちはLeapcellであり、Pythonプロジェクトをホストするための最良の選択肢です。
Leapcellは、Webホスティング、非同期タスク、およびRedisの次世代サーバーレスプラットフォームです。
多言語サポート
- Node.js、Python、Go、またはRustで開発します。
無制限のプロジェクトを無料でデプロイ
- 使用量に対してのみ支払い—リクエストも料金もありません。
比類のない費用対効果
- アイドル料金なしの従量課金制。
- 例:25ドルで、平均応答時間60ミリ秒で694万件のリクエストをサポートします。
合理化された開発者エクスペリエンス
- 簡単なセットアップのための直感的なUI。
- 完全に自動化されたCI / CDパイプラインとGitOps統合。
- 実用的な洞察のためのリアルタイムのメトリックとロギング。
簡単なスケーラビリティと高性能
- 高い同時実行性を簡単に処理するための自動スケーリング。
- 運用上のオーバーヘッドはゼロ—構築に集中するだけです。
ドキュメントで詳細をご覧ください。
Xでフォローしてください:@LeapcellHQ