1. ホーム
  2. python

[解決済み] Python Regexでグループを瞬時に置き換える

2022-05-07 11:33:47

質問

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

通常の方法です。

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

でも、こんな風に実現したいんです。

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

Regexが捕捉したグループから、瞬時に新しい文字列を構築したい。

解決方法は?

をご覧ください。 re.sub :

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

Pythonの正規表現による置換(replace)関数です。置換文字列には、いわゆる後方参照(バックスラッシュ、グループ番号)を入れることができ、グループによってマッチしたものに置き換わります。グループの数え方は group(...) 関数,すなわち 1 のように、左から右へ、括弧を開けていきます。