string str = @"0\.[0-9]{1,2}";
                    Regex r = new Regex(str);
                    Match m = r.Match(dataGridView1.Rows[i].Cells["activityDiscount"].FormattedValue.ToString());
                    if (!m.Success)
                    {
                        MessageBox.Show("折扣必须在1和0之间");
                        return;
                    }
我做一个折扣,要小于1大于0,并且小数后面可以使1位,也可以是2位。比如0.1 或者0.33这样的。但是我
输入大于1 或者输入0.33都能匹配球大神讲一下。我会对你膜拜

解决方案 »

  1.   

    如上的正则是正确的,请断点看一下你要匹配的字符串string tempStr = @"1.33";
                    string pattern = @"0\.[0-9]{1,2}";
                    bool flag = Regex.Match(tempStr, pattern).Success;//false
      

  2.   

    Match m = r.Match(dataGridView1.Rows[i].Cells["activityDiscount"].FormattedValue.ToString());
    改成
    Match m = r.Match(dataGridView1.Rows[i].Cells["activityDiscount"].Value.ToString());
    试试
      

  3.   

    Match m = r.Match(dataGridView1.Rows[i].Cells["activityDiscount"].FormattedValue.ToString());
    改成
    Match m = r.Match(dataGridView1.Rows[i].Cells["activityDiscount"].Value.ToString());
    试试