ホームページ  >  記事  >  バックエンド開発  >  Python の re.sub で一致を番号付きグループに適切に置き換える方法は?

Python の re.sub で一致を番号付きグループに適切に置き換える方法は?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-03 17:45:03864ブラウズ

How to Properly Replace Matches with Numbered Groups in Python's re.sub?

Python RE.Sub グループ: 番号の後の番号付け

Python で正規表現を使用する場合、re.sub メソッドを使用して置換できます。置換文字列と一致します。ただし、番号付きグループを使用する場合、この構文は扱いにくい場合があります。

誤解された試み:

最初は、次のことを試してみるかもしれません:

<code class="python">re.sub(r'(foo)', r'23', 'foobar')</code>

出力は「foo123bar」であることが予期されていますが、すぐには明らかではない理由により、代わりに「J3bar」が返され、「foo」が「J3」に置き換えられます。

正しい構文:

「foo」を「foo123」に正確に置き換えるには、次の構文を使用します:

<code class="python">re.sub(r'(foo)', r'\g<1>123', 'foobar')</code>

詳細な説明は次のとおりです:

  • 正規表現 ( foo) は部分文字列 'foo' をキャプチャします。
  • 置換文字列 g<1>123 は、キャプチャされた部分文字列を参照し、それに「123」を追加します。
  • g<1>は番号付きのグループ参照です。「」は最初にキャプチャされたグループを表します。

ドキュメントの抜粋:

ドキュメントによると、g の構文は次のようになります。または g

文字エスケープと後方参照に加えて、... g に使用されます。 (?P...) 構文で定義されているように、名前付きグループと一致する部分文字列を使用します。 g対応するグループ番号を使用します。

以上がPython の re.sub で一致を番号付きグループに適切に置き換える方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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