Pythonのsearchメソッドにおけるキャプチャグループ

一致する文字列を検索する際、それをキャプチャグループと呼ばれる部分に分解すると便利なことがよくあります。 これは、見つかった文字列を個別の部分に分割する方法です。これらを使用するには、正規表現の一部を丸括弧で囲む必要があります。

実際に試してみましょう。次のような文字列があるとします:

pythontxt = '123 456'

数字の部分文字列をキャプチャグループに分解してみましょう。そのために、次の正規表現を書きます:

pythonres = re.search('(\d+) (\d+)', txt)

結果として、matchオブジェクトが得られます。 そのインデックス1の要素には最初のキャプチャグループが、インデックス2の要素には2番目のキャプチャグループが、そしてインデックス0の要素には検索で見つかった全体(いわゆるゼロ番目のキャプチャグループ)が格納されます:

pythonprint(res[0]) # '123 456' - 見つかった全体
print(res[1]) # '123'     - 1番目のキャプチャグループ
print(res[2]) # '456'     - 2番目のキャプチャグループ
Задание 1

ドメインを含む文字列が与えられます:

pythontxt = 'sss domain.ru zzz'

このドメインを見つけ、その名前を最初のキャプチャグループに、ゾーンを2番目のキャプチャグループに格納してください。

Задание 2

日付を含む文字列が与えられます:

pythontxt = '31.12.2025'

日を最初のキャプチャグループに、月を2番目に、年を3番目のキャプチャグループに格納してください。