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

9-7 アトミックグループ

正規表現パズル

.NETのアトミックグループの使用例です。

MSDN --- 非バックトラッキング部分式


ソース

using System.Text.RegularExpressions;

class Program
{
    static void Main()
    {
        string[] strArr = {"1",
                           "12",
                           "123",
                           "1234",};

        const string Pattern = @"^(?>[012]+)[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 ^(?>[012]+)[0-9]$
1 no match
12 no match
123 matchs 123
1234 no match