匹配1位数字或2位数字:
^\d|\d\d$
结果3位数字也能匹配!我明明加了^$这样的起止符,为何没起到限定作用呢?(上面是个小测试,我实际需求是0-65535之间的数字,最多4位小数。后来发现存在上面的问题)环境:vs2005,c#,.net2.0

解决方案 »

  1.   

    google  一下  答案就出来了
      

  2.   

    ^\d|\d\d$ 
    因为你的|,你的正则可以理解为你\d开头,以\d\d结尾的可以把你的修改为:^(\d|\d\d)$
      

  3.   

    是“|”的作用域问题,这种验证一定要用()限定作用范围的^(\d|\d\d)$ 
    //当然,这种简单的是没必要这样写的
    ^\d{1,2}$
      

  4.   

    你这样的写法相当于
    (^\d)|(\d\d$)
    了,正确的写法是3楼的
    ^(\d|\d\d)$
      

  5.   

    来晚了 郁闷  
    ^(\d|\d\d)$
      

  6.   

    0-65535之间的数字,最多4位小数的正则是:
    ^(\d|([1-9]\d)|([1-9]\d{2})|([1-9]\d{3})|([1-5]\d{4})|(6[0-4]\d{3})|(65[0-4]\d{2})|(655[0-2]\d)|(6553[0-5]))(\.\d{1,4})?$谢谢大家,结贴。