Python 正規表現でグループを即座に置換する 質問する

Python 正規表現でグループを即座に置換する 質問する

正規表現構文を使用してすべてのグループを直接置き換える方法はありますか?

通常の方法:

re.match(r"(?:aaa)(_bbb)", string1).group(1)

しかし、私は次のようなことを達成したいと思っています:

re.match(r"(\d.*?)\s(\d.*?)", "(CALL_GROUP_1) (CALL_GROUP_2)")

正規表現がキャプチャしたグループから新しい文字列を瞬時に構築したいと思います。

ベストアンサー1

見てre.sub:

result = re.sub(r"(\d.*?)\s(\d.*?)", r"\1 \2", string1)

これは Python の正規表現置換 (置換) 関数です。置換文字列には、いわゆるバックリファレンス (バックスラッシュ、グループ番号) を入力できます。バックリファレンスは、グループに一致したものに置き換えられます。グループは関数と同じようにカウントされます。group(...)つまり、1左から右へ、開き括弧で始まります。

おすすめ記事