ホームページ >バックエンド開発 >Python チュートリアル >Python: `.replace()` メソッドと `.re.sub()` メソッドの違い

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

WBOY
WBOYオリジナル
2024-07-31 06:38:03546ブラウズ

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

導入

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

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

以上がPython: `.replace()` メソッドと `.re.sub()` メソッドの違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。