Pythonのsearchメソッドにおけるキャプチャグループ
一致する文字列を検索する際、それをキャプチャグループと呼ばれる部分に分解すると便利なことがよくあります。 これは、見つかった文字列を個別の部分に分割する方法です。これらを使用するには、正規表現の一部を丸括弧で囲む必要があります。
実際に試してみましょう。次のような文字列があるとします:
txt = '123 456'
数字の部分文字列をキャプチャグループに分解してみましょう。そのために、次の正規表現を書きます:
res = re.search('(\d+) (\d+)', txt)
結果として、matchオブジェクトが得られます。
そのインデックス1の要素には最初のキャプチャグループが、インデックス2の要素には2番目のキャプチャグループが、そしてインデックス0の要素には検索で見つかった全体(いわゆるゼロ番目のキャプチャグループ)が格納されます:
print(res[0]) # '123 456' - 見つかった全体
print(res[1]) # '123' - 1番目のキャプチャグループ
print(res[2]) # '456' - 2番目のキャプチャグループ
ドメインを含む文字列が与えられます:
txt = 'sss domain.ru zzz'
このドメインを見つけ、その名前を最初のキャプチャグループに、ゾーンを2番目のキャプチャグループに格納してください。
日付を含む文字列が与えられます:
txt = '31.12.2025'
日を最初のキャプチャグループに、月を2番目に、年を3番目のキャプチャグループに格納してください。