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