「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > Python: `.replace()` メソッドと `.re.sub()` メソッドの違い

Python: `.replace()` メソッドと `.re.sub()` メソッドの違い

2024 年 8 月 25 日に公開
ブラウズ:657

Python: differences between `.replace()` and `.re.sub()` methods

導入

Python の .replace() メソッドと .re.sub() 関数はどちらも文字列の一部を置換するために使用されますが、機能と使用例が異なります。それらの基本的な違いは次のとおりです:

  1. モジュールと使用状況のコンテキスト:
    • 。交換する()
      • str クラスに属します。
      • 文字列オブジェクトのメソッドとして使用されます。
      • 構文: str.replace(old, new, count=-1)
      • 例: 'hello world'.replace('world', 'Python') の結果は 'hello Python' になります。
  • .re.sub():
    • re モジュール (正規表現) に属します。
    • re モジュールの関数として使用されます。
    • 構文: re.sub(パターン、repl、文字列、カウント=0、フラグ=0)
    • 例: re.sub(r'\bworld\b', 'Python', 'hello world') の結果は 'hello Python' になります。
  1. パターン マッチング:
    • 。交換する()
      • 単純な文字列一致のみをサポートします。
      • 正規表現や複雑なパターンは使用できません。
      • count が指定されていない場合は、出現する部分文字列をすべて置き換えます。
  • .re.sub():
    • 正規表現をサポートし、複雑なパターン マッチングを可能にします。
    • 文字クラス、繰り返し、グループ化などのパターンに基づいて一致および置換できます。
    • 後方参照の使用を許可し、より複雑な置換を処理できます。
  1. 交換の柔軟性:
    • 。交換する()
      • 固定部分文字列を別の固定部分文字列に置き換えることに限定されます。
      • グループのキャプチャや条件付き置換などの高度な置換機能はありません。
  • .re.sub():
    • キャプチャ グループを使用した動的な置換を可能にします。
    • 置換文字列 (repl) は、パターンから一致したグループを参照できます。
    • 関数を置換として使用できるため、一致に基づいて複雑で動的な置換が可能になります。
  1. パフォーマンス
    • 。交換する()
      • パターン マッチングが含まれないため、単純な置換の方が一般的に高速です。
  • .re.sub():
    • 正規表現処理のオーバーヘッドのため、通常は .replace() よりも遅くなります。

.replace() の使用:

text = "The quick brown fox jumps over the lazy dog"
result = text.replace("fox", "cat")
print(result)  # Output: The quick brown cat jumps over the lazy dog

.re.sub() の使用:

import re

text = "The quick brown fox jumps over the lazy dog"
pattern = r'\bfox\b'
replacement = "cat"
result = re.sub(pattern, replacement, text)
print(result)  # Output: The quick brown cat jumps over the lazy dog

.re.sub():
を使用した高度な例

import re

text = "The quick brown fox jumps over the lazy dog"
pattern = r'(\b\w \b)'  # Matches each word
replacement = lambda match: match.group(1)[::-1]  # Reverses each matched word
result = re.sub(pattern, replacement, text)
print(result)  # Output: ehT kciuq nworb xof spmuj revo eht yzal god

要約すると、単純で直接的な部分文字列の置換には .replace() を使用し、パターンベースの置換に正規表現の機能と柔軟性が必要な場合は .re.sub() を使用します。

リリースステートメント この記事は次の場所に転載されています: https://dev.to/dridoro/python-differences-between-replace-and-resub-methods-1cfj?1 侵害がある場合は、[email protected] に連絡して削除してください。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3