Regex reg = new Regex(@"^(([1-9]\d{0,2})|0)(\.\d{1,2})?$");
这个正则表达式描述一个实数,整数位最多3位,小数位最多2位,比如下面的形式都是正确的:
123.12
123.1
123
12
1
0

解决方案 »

  1.   


    借用一下:
    Regex reg = new Regex(@"^(([1-9]\d{0,2})|0)(\.\d{1,2})?$");
    表示整数位最多3位,小数位最多2位;整数为1-9其中三位数,小数为0-9其中2位数
      

  2.   

    Regex reg = new Regex(@"^(([1-9]\d{0,5})|0)(\.\d{1,2})?$");
      

  3.   

    为何输入大于3位的数字就报错?楼主应该给个例子吧?[1-9]表示这一位数字可以是1-9;
    \d{0,2} \d表示是数字,0,2表示重复次数是0次到2次。
    ([1-9]\d{0,2})连起来就可以表示1-999。如果\d 0 就是1-9,如果\d 1就是1-99。。
    ([1-9]\d{0,2})|0 表示0-999,|是选择符,可以选择左边或者右边,可以理解成or。
    (\.\d{1,2})这是小数部分,包括小数点。小数点后1-2位。
    ?表示重复前面内容的0次或一次。综合起来就是:这个表达式表示整数最多3位,小数最多2位的数字。
    如果想要扩张,整数部分扩展可以改一下这里\d{0,2},小数扩展类似。