MatchEvaluatorに渡されるMatchインスタンスは、置換の正規表現要素$0
に相当する値となっています。 以下の例では、MatchEvaluatorを使った置換と、それと同等の置換を正規表現要素を用いて記述したものを併記しています。 どちらも同じ結果を出力します。 (この例で使用している正規表現については§.マッチした文字列への置換 (置換の正規表現要素)の解説を参照してください。)
Regex.ReplaceメソッドとMatchEvaluatorを使ってマッチ箇所を強調表示する
using System;
using System.Text.RegularExpressions;
class Sample {
static void Main()
{
var text = "The quick brown fox jumps over the lazy dog";
// MatchEvaluatorを使った置換
Console.WriteLine(Regex.Replace(text, @"\b\w{3}\b", m => "<" + m.Value + ">"));
// 置換の正規表現要素を使った置換 (上記と同等のコード)
Console.WriteLine(Regex.Replace(text, @"\b\w{3}\b", "<$0>"));
}
}
実行結果
<The> quick brown <fox> jumps over <the> lazy <dog> <The> quick brown <fox> jumps over <the> lazy <dog>
"$0"
以外の置換の正規表現要素については正規表現の構造化および処理(マッチ・グループ・キャプチャ) §.グループと置換文字列、および.NET Frameworkで使用できる正規表現 §.置換で解説しています。