从这个方法字面意义上理解,应该是判断是否为数字的,可为负数或带小数点
[-]?和[.]?相当于-?和.?,效果是一样的,这样写相没什么特殊意义,而且这里应该用“\.”而不是“.”
改了一下,这样会好些static bool IsNumeric(string str)  
{   
   System.Text.RegularExpressions.Regex reg1  
       = new System.Text.RegularExpressions.Regex(@"^-?([1-9]\d*|0)(\.\d+)?$");   
   return reg1.IsMatch(str);  
}