Pythonのsearchメソッドにおける名前付きキャプチャグループ
キャプチャグループをより便利に扱うために、名前を付けることができます。そのためには、 search メソッドの第一引数で正規表現の前に '?P' という文字列を書き、その後に山括弧でキャプチャグループの名前を指定します。
このようなキャプチャグループは、 groupdict メソッドを使用して取得できます。このメソッドは、キーがキャプチャグループ名、値がその中にある部分文字列である辞書を返します。
例を使って名前付きキャプチャグループの操作を見てみましょう。次の文字列があるとします:
txt = '123 456'
これに対して、それぞれ 'num1' と 'num2' という名前の2つのキャプチャグループを作成しましょう:
res = re.search('(?P<num1>\d+)\s(?P<num2>\d+)', txt)
次に、 groupdict メソッドでキャプチャグループを出力します:
print(res.groupdict()) # {'num1': '123', 'num2': '456'} を出力
時刻を表す文字列が与えられています:
txt = '12:59:59'
時、分、秒を別々の名前付きキャプチャグループに格納してください。
次の文字列が与えられています:
txt = 'aaa bbb 123 456'
部分文字列 'aaa' と 'bbb' を別々の名前付きキャプチャグループに格納してください。
次の文字列が与えられています:
txt = 'alex23'
ユーザー名と年齢を別々の名前付きキャプチャグループに格納してください。