求一正则表达式 输入不许为0,可以是正数负数或小数 0.2 允许. 但是 0 或 0.0 0.00000 不允许

解决方案 »

  1.   

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

  2.   

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

  3.   

    输入不许为0,可以是正数负数或小数 0.2 允许. 但是 0 或 0.0 0.00000 不允许
    -----------------------------------------------
    ^\-?([1-9]\d*|(0|[1-9]\d*)\.\d*[1-9])$
    取$0的值,已调试
      

  4.   

    ^\-?(([1-9]\d*)(\.\d+)?)|(0\.\d*[1-9])$