Pythonのreplaceメソッドで正規表現を使う方法
Pythonで正規表現を用いて文字列を置換する場合、reモジュールのsub()関数を使用します。sub()関数を使用することによって、複雑なパターンマッチングと置換が可能になります。正規表現を使用することによって、単純な文字列置換では難しい柔軟な文字列操作の実現が可能です。
re.sub()関数は第1引数にパターン、第2引数に置換する文字列、第3引数に対象の文字列を指定します。正規表現にマッチする全ての箇所を一度に置換することができるため、非常に便利な関数の一つです。
【サンプルコード】
import re
text = "The price is $100 and €50."
pattern = r'\$(\d+)' # ドル記号とそれに続く数字にマッチする正規表現
replacement = r'¥\1' # ¥記号とマッチした数字に置換
result = re.sub(pattern, replacement, text)
print(result)
【実行結果】
The price is ¥100 and €50.
上記のサンプルコードでは、ドル記号とそれに続く数字を円記号と同じ数字に置換しています。\1は正規表現の中で括弧でグループ化された部分(ここでは数字)を参照するための特殊な記法です。正規表現を使用することによって、特定のパターンに一致する部分のみを選択的に置換することができます。
re.sub()関数はマッチした部分を新しい文字列で置換します。数字だけではなく特定の文字列を検知して、別の文字列に置換することも可能です。
正規表現を使った複数パターンの置換方法
複数パターンを同時に置換する場合、辞書と関数を組み合わせることで効率的に処理できます。この方法では置換パターンを辞書として定義し、re.sub()関数の第2引数に関数を指定します。関数内で辞書を参照することによって、マッチしたパターンに応じた置換を行うことが可能です。
この手法を使用することによって、コードの可読性を保ちながら複雑な置換ルールを実装できます。また、置換ルールの追加や変更が容易になるため、メンテナンス性の高いコードを作成できます。
【サンプルコード】
import re
text = "Apple costs $1, Banana costs $2, and Orange costs $3."
patterns = {
r'\$1': '¥100',
r'\$2': '¥200',
r'\$3': '¥300'
}
def replace_currency(match):
return patterns[match.group(0)]
result = re.sub('|'.join(patterns.keys()), replace_currency, text)
print(result)
【実行結果】
Apple costs ¥100, Banana costs ¥200, and Orange costs ¥300.
上記のサンプルコードでは、複数の通貨表記を同時に置換しており、patterns辞書にパターンと置換文字列のペアを定義して、replace_currency関数内でマッチしたパターンに対応する置換を行っています。'|'.join(patterns.keys())によって、全てのパターンを選択的に一致させる正規表現を生成しています。
正規表現を使った条件付き置換の実装方法
正規表現を使用することによって、特定の条件を満たす場合のみ置換を行う高度な処理が可能になります。この手法では正規表現の先読みアサーションや後読みアサーションを活用します。これらの機能を使用することによって、置換対象の前後の文脈を考慮した柔軟な置換処理の実現が可能です。
条件付き置換を実装する際は、正規表現のパターンを慎重に設計する必要があります。複雑な条件を正規表現で表現することによって、Pythonのコード内でのif文の使用を減らし、より簡潔で効率的な置換処理を行えます。
【サンプルコード】
import re
text = "red apple, green apple, red banana, yellow banana"
pattern = r'(red|green) (?=apple)' # appleの前のredまたはgreenにマッチ
replacement = 'delicious'
result = re.sub(pattern, replacement, text)
print(result)
【実行結果】
delicious apple, delicious apple, red banana, yellow banana
上記のサンプルコードでは「red」または「green」という色の形容詞が「apple」の前にある場合のみ、その形容詞を「delicious」に置換しています。(?=apple)は先読みアサーションで「apple」という単語が後に続く場合のみマッチします。この正規表現を使用することによって、「banana」の前の色の形容詞は置換されずに残ります。
先読みアサーションや後読みアサーションを使うことで、より複雑な条件での置換を実装することが可能ですので、覚えておくことをおすすめします。
※上記コンテンツの内容やソースコードはAIで確認・デバッグしておりますが、間違いやエラー、脆弱性などがある場合は、コメントよりご報告いただけますと幸いです。
ITやプログラミングに関するコラム
Gitでブランチ(branch)を作成する方法
crontabの書き方
PDFをExcelに変換する方法
Excelでプルダウンを設定する方法
エクセルでページ区切りを設定する方法
Markdownの取り消し線の書き方
ラズベリーパイでできること9選
Gitでbranch(ブランチ)を削除する方法をローカル・リモート別に解説
git addの取り消し方法を状況別に解説
CSSのstickyプロパティでWebサイトに固定要素を実装する方法
ITやプログラミングに関するニュース
アイアール技術者教育研究所がエクセルギー解析計算ウェビナーを開催、省エネと環境負荷低減に貢献
フラー株式会社がアプリ市場トレンド解説ウェビナーを3月25日に開催、成長アプリの共通項とデータ活用を解説
株式会社BOTANICOが2026年版X運用最新戦略ウェビナーを開催、成果につなげる資産型運用を解説
AIストーム株式会社がOpenClaw活用セミナーを開催、AIエージェントがビジネス現場を変革
株式会社オロが建設コンサルティング業向けウェビナーを開催、技術部門の損益可視化を支援
アルティウスリンク株式会社が経理向けBPO活用ウェビナーを開催、課題解決と業務効率化を支援
株式会社日本計画研究所がAI時代のインフラセミナー開催、GPUとデータセンターの課題を解説
株式会社カウンターワークスがリーシング業務AI活用ウェビナー開催、既存ツールでAIエージェント実践
株式会社セキドがDJI産業機セミナーを福井で開催、3Dデータ活用と機材選定を無料解説
株式会社ナビットが補助金活用ウェビナーを開催、販促費削減と集客力向上を解説
