1

「\d」は0から9までの1桁の数字に一致すると述べたC#正規表現チュートリアルを見ていました。

しかし、私が次のプログラムを実行したとき。

    static void Main(string[] args)
    {
        string s = "45";
        Regex myRegex = new Regex(@"(\d)");

        if( myRegex.IsMatch(s))
        {
            System.Console.WriteLine("Matched");
        }
        else
        {
            System.Console.WriteLine("Not Matched");
        }

        Console.ReadKey();
    }

コンソールは「一致」と印刷されました。

4

2 に答える 2

10

ええ、4正規表現の一致は入力文字列全体をカバーする必要がないため、が見つかります。文字列が1桁だけであることを確認する場合は、文字列の開始と終了を示すアンカーを含めます。

Regex myRegex = new Regex(@"^(\d)$");

ここで、一致は文字列の先頭(でマーク)で開始し、文字列^の末尾(でマーク$)で終了する必要があります。したがって、1桁の入力のみが許可されます。これを省略すると、正規表現を入力の任意のサブストリングに一致させることができます。

于 2012-10-17T21:45:44.040 に答える
3
Regex myRegex = new Regex(@"^\d$");
于 2012-10-17T21:54:27.090 に答える