-2

1から9999までの数字のみを許可する正規表現が必要です。他のすべての文字記号とすべてを制限する必要があります。私は試し^\d+$ました。しかし、それは機能していません

4

4 に答える 4

4

完全に正規表現でそれを行うことを主張する場合、それは少し醜いでしょう。私が考えることができる唯一のことは次のようなものです: ^[1-9][0-9]{0,3}$(1から9までの数字とそれに続く0から9までの0から3桁)。

于 2013-01-25T05:16:49.667 に答える
1

あなたは本当にこれのために正規表現を必要としません、

したがって、非正規表現の方法

        string myNum = "5000";

        int num;

        if (Int32.TryParse(myNum, out num) && (num >= 1 && num <= 9999))
        {
            //condition validated
        }

そしてその

正規表現ウェイ

bool foundMatch = Regex.IsMatch(myNum, "^(?:[1-9][0-9]{0,3})$");
于 2013-01-25T05:16:14.740 に答える
1

文字クラスを使用したい。

^[1-9][0-9]{,3}$
于 2013-01-25T05:17:36.543 に答える
0

使用できます

^0*(?!\d{5,}$)(?!0+$)\d+$

ただし、文字列を int に解析してから値を比較することをお勧めします。

KISSの原則に従う

于 2013-01-25T06:06:02.770 に答える