インデックスが0
のグループは特殊なグループで、正規表現全体にマッチした部分を表します。 つまり、match.Group[0]
はmatch
そのものと同じ値となります。 これはPerlなどの正規表現における変数$0
に相当するものです。
グループ番号0を参照して正規表現全体にマッチした箇所を取得する
Imports System
Imports System.Text.RegularExpressions
Class Sample
Shared Sub Main()
Dim text As String = "2016-02-29 00:00:00"
Dim pattern As String = "\d{4}-\d{2}-\d{2}" ' yyyy-mm-dd形式の日付
Dim m As Match = Regex.Match(text, pattern)
' グループ番号0は正規表現にマッチした文字列全体を表す(Match.Valueプロパティと同じ値となる)
Console.WriteLine(m.Groups(0).Value)
Console.WriteLine(m.Value)
End Sub
End Class
実行結果
2016-02-29 2016-02-29
グループ化された正規表現を含まない場合でも、常にインデックス0のグループを参照することができます。 正規表現にマッチする箇所がない場合(SuccessプロパティがFalse
のMatch)でも同様にインデックス0のグループを参照することができ、このときグループの値は空の文字列となります。