2012-12-22 6 views
36

regex-syntaxのすべてのグループを直接置き換える方法はありますか?Python Regexは即座にグループを置き換えます

通常の方法:

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

私はこのような何かを達成したい:ちょうどグループ正規表現を呼び出すことにより、だから私はちょうど、可能な場合新しい文字列瞬間を構築したい

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

を捕らえられた

答えて

76

re.subを見てください:

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

これはPythonの正規表現の置換(置き換え)関数です。置換文字列は、いわゆる後方参照(バックスラッシュ、グループ番号)で埋めることができ、グループによって一致した文字列で置き換えられます。グループは、group(...)関数と同じようにカウントされます。つまり、左から括弧をつけて、1から開始します。