キャプチャとは、グループ化された正規表現にマッチした文字列の一つ一つを表します。 言い換えると、正規表現の部分式にマッチした箇所がキャプチャとなります。
例えば、3桁の数字の連続を表す正規表現(\d{3})+
を考えた場合、この正規表現内のグループ(\d{3})
には量指定子+
があるため、グループ(\d{3})
にマッチする文字列は複数となる場合があります。 この一つ一つがキャプチャとなります。 このように、グループに対して*
, +
や{n}
などの量指定子を指定した場合には、マッチした個々の文字列をキャプチャによって参照することができます。
キャプチャはCaptureクラスで扱います。 Captureクラスは、Groupクラスと同様にRegexクラスやMatchクラスから直接返されることはなく、Group.Capturesプロパティを通じて参照します。
グループ化された正規表現にマッチする箇所が複数ある場合、match.Groupsプロパティは各グループの最後にマッチした箇所=最後のキャプチャを表すGroupを返します。 一方group.Capturesプロパティは、マッチした個々の箇所に対応するCaptureを返します。 グループとは異なり、各キャプチャには0から始まるインデックスが割り当てられます。