正则表达式来限制零

时间:2013-01-25 05:13:25

标签: asp.net regex

我想要一个正则表达式,只允许从1到999的数字。它应该限制所有其他字符符号和所有。 我试过了^\d+$。但它不起作用

4 个答案:

答案 0 :(得分:4)

如果你坚持在Regexs中完全做到这一点,那将会有点难看。我唯一能想到的是:^[1-9][0-9]{0,3}$(从1到9的数字,后跟从0到9的0到3位数字)。

答案 1 :(得分:1)

你真的不需要正则表达式,

所以非正则表达方式

        string myNum = "5000";

        int num;

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

Regex Way

bool foundMatch = Regex.IsMatch(myNum, "^(?:[1-9][0-9]{0,3})$");

答案 2 :(得分:1)

您想使用字符类。

^[1-9][0-9]{,3}$

答案 3 :(得分:0)

您可以使用

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

但最好将字符串解析为int,然后比较值..

遵循 KISS 原则