トップページに戻る    次のC#のサンプルへ    前のC#のサンプルへ

5-2 Regex.ReplaceでMatchEvaluatorデリゲートを指定

C#のサンプル

Regex.ReplaceでMatchEvaluatorデリゲートを指定するサンプルです。

正規表現クックブックのレシピ 3.17 (215ページ)を参考にさせていただきました。


ソース

using System;
using System.Text.RegularExpressions;

class Program
{
    static void Main()
    {
        string Target = "XX123YY45ZZ67";
        Regex Pattern = new Regex("[0-9]+");
        Target = Pattern.Replace(Target,
                                 pMatch =>
                                 {
                                     int wk;
                                     if (int.TryParse(pMatch.Value, out wk)) {
                                         if (wk > 100) return (wk * 2).ToString();
                                     };
                                     return "";
                                 });
        Console.WriteLine(Target);
    }
}


実行結果

XX246YYZZ


解説

Regex.Replaceメソッドでは、MatchEvaluatorデリゲートを指定して、
Replaceの処理を指定できます。

MSDN --- Regex.Replaceメソッド
MSDN --- MatchEvaluatorデリゲート
MSDN --- Matchクラス