正規表現構文を使用してすべてのグループを直接置き換える方法はありますか?
通常の方法:
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
左から右へ、開き括弧で始まります。