大家帮我看一下,这个正则表达式要怎么改?

 bool IsNotNumberORHyphen(object val)
        {
            if (!SYUtil.IsValid(val) || String.IsNullOrEmpty(val.ToString()))
                return false;
            //Regex r = new Regex(@"[^[-][^0-9-]]");
            Regex r = new Regex(@"^[0-9\-]");
            if (r.IsMatch(val.ToString()))
            {
               MessageBox.Show( "'只能输入数字及 [-].");                
                return true;
            }
            return false;
        }

我想只能输入数字以及[-],帮我怎么改才好?

这样即可:

 bool IsNotNumberORHyphen(object val)
        {
            if (!SYUtil.IsValid(val) || String.IsNullOrEmpty(val.ToString()))
                return false;

            Regex r = new Regex(@"^[\d-]+$");
            if (!r.IsMatch(val.ToString()))
            {
               MessageBox.Show( "'只能输入数字及 [-].");                
                return true;
            }
            return false;
        }
 Regex r = new Regex(@"^-?\d+$");

你的需求是 只能输入一个 -还是 可以输入多个?

只能输入一个 - : Regex r = new Regex(@"^-?\d+$");
只能输入多个 - : Regex r = new Regex(@"^[\d-]+$");