Regex.ReplaceメソッドやMatch.Resultメソッドでは、置換文字列として$n
を指定すると、グループにマッチした文字列に置換することができます。 例えば$1
とすればグループ番号1のグループにマッチした文字列に置換されます。 以降同様に、$2
、$3
…と参照することができます。 $0
とした場合は、マッチした文字列全体が参照されます。
グループ番号の置換文字列を使ってmm/dd/yyyy形式の日付をyyyy-mm-dd形式に置換する
Imports System
Imports System.Text.RegularExpressions
Class Sample
Shared Sub Main()
Dim text As String = "02/29/2016 00:00:00"
Console.WriteLine(text)
' mm/dd/yyyy形式の日付 (グループ番号1=月、番号2=日、番号3=年となる)
Dim pattern As String = "(\d{2})/(\d{2})/(\d{4})"
' mm/dd/yyyy形式の日付をyyyy-mm-ddの形式に置換して表示
Console.WriteLine(Regex.Replace(text, pattern, "$3-$1-$2"))
End Sub
End Class
実行結果
02/29/2016 00:00:00 2016-02-29 00:00:00
PerlやRubyの正規表現では$n
を変数として用いることができますが、C#およびVB.NETでは$n
を変数として用いることはできません。