需要一个正则表达式,条件是这样的。可以验证任意的数值,整数部份位数没有限制,小数部份位数没有限制。一位小数点,有小数点,就必需要有整数和小数部份。可以是负数(也就是第一位是“-”),也可以不是负数。但是像00,09 这样型式的就认为是不正确的。
谢谢各位指导。

解决方案 »

  1.   

    http://www.qqgb.com/NetProgramme/PHP/PHPZZBDS/NetProgramme_62312.html
      

  2.   

    Regex r = new Regex(@"^\-?[1-9]\d*(\.\d+)?$");
      

  3.   

    Regex r = new Regex(@"^\-?([1-9]\d*|0)(\.\d+)?$");
      

  4.   

    Regex rx = new Regex(@"^\-?([1-9]\d*|[0])(\.\d+)?$");测试程序:
    Regex rx = new Regex(@"^\-?([1-9]\d*|[0])(\.\d+)?$");
                string str = Console.ReadLine();
                while (str != "exit")
                {
                    if ((rx.Match(str)).Success)
                    {
                        Console.WriteLine("yes");
                    }
                    else
                    {
                        Console.WriteLine("no");
                    }
                    str = Console.ReadLine();
                }
      

  5.   

    可以验证任意的数值,整数部份位数没有限制,小数部份位数没有限制。一位小数点,有小数点,就必需要有整数和小数部份。可以是负数(也就是第一位是“-”),也可以不是负数。但是像00,09 这样型式的就认为是不正确的
    ---------------------------------------------------
    ^(\-)?(0|[1-9]\d*|((0|[1-9]\d*)\.\d*[1-9])?)$
    取$0的值,已调试
      

  6.   

    ^(\-)?(0|[1-9]\d*|(0|[1-9]\d*)\.\d*[1-9])$
    改了一下,这样效率更好,取$0的值
      

  7.   

    在我以前写的一个基础上改了一下,只是没有匹配0.0以及更多0的情况(当然,有这个需要也可以加上),其它都可匹配,另外就是可以匹配“1.0”,“1.010”这样的情况,如果没有这个需要,用楼上的就可以了
    ^((-?(([1-9]\d*(\.\d+)?)|(0\.0*[1-9]\d*)))|0)$