正規表現要素(
と)
を用いると、正規表現をグループ化することができます。 例えば、yyyy-dd-mm形式の日付にマッチする正規表現は\d{4}-\d{2}-\d{2}
と記述することができますが、この正規表現の年月日部分をそれぞれグループ化すると(\d{4})-(\d{2})-(\d{2})
となります。
このようにしてグループ化した正規表現では、各グループにマッチした箇所を個別に参照することができます。 また、各グループには先頭側にあるグループから順に1から始まるインデックス(グループ番号)が割り当てられます。
グループを含む正規表現では、正規表現全体にマッチした文字列はMatchクラスによって参照することができると同時に、それぞれのグループにマッチした文字列はMatch.Groupsプロパティを通してmatch.Group[1]
, match.Group[2]
... のようにGroupクラスの形で個別に参照することができます。
また、Matchクラスと同様に、Group.Valueプロパティでグループ化した部分にマッチした文字列が参照できるほか、IndexプロパティとLengthプロパティでその位置と長さを取得することができます。
グループ内にグループを記述する、つまりグループを入れ子にすることもできます。 グループが入れ子になっている場合、最も外側・先頭側にあるグループから順にグループ番号が割り当てられます。 グループ番号の割れ当て方と、入れ子になったグループの場合については.NET Frameworkで使用できる正規表現 §.グループ番号の割り振られ方を参照してください。