我看到教程是这样写if (!Regex.IsMatch(txtNum.Text.Trim(), @"^\+?[1-9][0-9]*$"))而我自己是这样写 if (!Regex.IsMatch(txtNum.Text.Trim(), @"^[1-9][0-9]*$"))
请问哪种写法是对的?

解决方案 »

  1.   


    不明白楼主为什么一定要用正则来实现这个功能?既然已经到了C#里,用uint.TryParse不是更方便吗?(效率应该也更高)uint t;
    if (uint.TryParse("10.5", out t)) {
      //是大于0整数
    }
      

  2.   


    if (!Regex.IsMatch(txtNum.Text.Trim(), @"^\+?[1-9][0-9]*$"))教程上与楼主,差别只是对于前面带+号这样的数字是否匹配了。比如“+5”,教程中的范例就会把它列为合法的的正整数,而楼主的就不会。只此而已。