トップページに戻る    次の正規表現パズルへ    前の正規表現パズルへ

9-8 条件分岐(if then else)で先読みと戻り読みを使用

正規表現パズル

.NETの条件分岐(if then else)で先読みの使用例です。

MSDN --- 式を使用した条件一致


ソース

using System.Text.RegularExpressions;

class Program
{
    static void Main()
    {
        string[] strArr = {"9,123",
                           "9,ABC",
                           "X,123",
                           "X,ABC",};

        const string Pattern = @"^(?(?=9,)9,[0-9]+$|.)";
        System.Console.WriteLine("Pattern {0}", Pattern);
        foreach (string each in strArr) {
            string WillOut = each;
            if (Regex.IsMatch(each, Pattern)) {
                WillOut += " matchs ";
                WillOut += Regex.Match(each, Pattern).Value;
            }
            else {
                WillOut += " no match";
            }
            System.Console.WriteLine(WillOut);
        }
    }
}


実行結果

Pattern ^(?(?=9,)9,[0-9]+$|.)
9,123 matchs 9,123
9,ABC no match
X,123 matchs X
X,ABC matchs X