Match.Resultメソッドを使ったもうひとつ別の例として、次の例では正規表現にマッチする箇所をすべて取得し、マッチした箇所を強調表示しています。 この例で用いている置換文字列の$`
および$'
は、それぞれマッチした箇所の前と後にある文字列を参照する正規表現要素、$0
は実際にマッチした文字列を参照する正規表現要素です。
Match.Resultメソッドを使って正規表現にマッチする箇所を強調表示する
using System;
using System.Text.RegularExpressions;
class Sample {
static void Main()
{
var text = "The quick brown fox jumps over the lazy dog";
var pattern = @"\w{4,}"; // 4文字以上の単語
Console.WriteLine(text);
Console.WriteLine();
foreach (Match m in Regex.Matches(text, pattern)) {
Console.WriteLine(m.Result("$`<$0>$'"));
// 上記と同じ結果を生成するコード
//Console.WriteLine(text.Substring(0, m.Index) + "<" + m.Value + ">" + text.Substring(m.Index + m.Length));
}
}
}
実行結果
The quick brown fox jumps over the lazy dog The <quick> brown fox jumps over the lazy dog The quick <brown> fox jumps over the lazy dog The quick brown fox <jumps> over the lazy dog The quick brown fox jumps <over> the lazy dog The quick brown fox jumps over the <lazy> dog