\d+\.\d+-\d+\.\d+|\d+\.\d-\d|\d+-\d+\.\d+|\d+\.\d+\-\d+|\d+\-\d+我要验证的为123-123
123-123.11
123.11-123
123.11-123.11这样的数值到数值的表达式
但我上面的感觉太长了怎么来简化
比如为
\d+\-\d+
然后这里面的\d允许包含一个"."且是不为最前和最后,谢谢谢谢

解决方案 »

  1.   

    这里面的\d允许包含一个"."且是不为最前和最后,谢谢 点在最前和最后,你原来的表达式一样能匹配,只不过没有把.匹配进去吧了如果要整串匹配
    try {
    if (Regex.IsMatch("123-123.11", @"^\d+\.?\d+\-\d+\.?\d+$")) {
    // Successful match
    } else {
    // Match attempt failed

    } catch (ArgumentException ex) {
    // Syntax error in the regular expression
    }
    不是的话,就把^和$删掉,结果跟你的一样
      

  2.   


    //如果是提取
    \d+(\.\d+)?-\d+(\.\d+)?
    //如果是验证
    ^\d+(\.\d+)?-\d+(\.\d+)?$si的要求至少两位数字,类似于1-1这样的通不过的