去字符串中的数字,如:
"a.bc.2.345BB45fd"  —— .2
"a.bc3.2.345BB45fd" —— 3.2
"a.bc333abcd45b"    —— 333

解决方案 »

  1.   

    [\d+.\d|\d]但你例子中有数字未去掉啊!
      

  2.   

    写错了,是"取"而不是"去掉"取字符串中的数字:
    "a.bc.2.345BB45fd"  —— .2
    "a.bc3.2.345BB45fd" —— 3.2
    "a.bc333abcd45b"    —— 333
      

  3.   

    to: swordragon(古道热肠)
    不是没有规律,就是找出字符串中符合一个实型数或整型数的数字,如果找出
    3.4.5.6这样的形势的话就只取3.4,后面的.5.6就不要了;当然.3.4.5的话就取.3就行了。
      

  4.   

    Match m = Regex.Match("", @"(\d+\.\d+|\d+|\.\d+)(?>.*)");
    if(m.Success)
    {
    //m.Groups[1].Value
    }
      

  5.   

    var re = /^(\D*(?=\.\d)|\D*(?=\d)|\D*)(\d*\.?\d*).*$/i;
    var s = "a.bc.2.345BB45fd";alert(s.replace(re, "$2"));  //返回.2
    var s = "a.bc3.2.345BB45fd";alert(s.replace(re, "$2")); //返回3.2
    var s = "a.bc333abcd45b";alert(s.replace(re, "$2"));    //返回333
    var s = "a.bc.dd";alert(s.replace(re, "$2"));           //返回空字符串
      

  6.   

    public static string ConvertAtag24(string s)
    {
    Match m = Regex.Match(s, @"[^\d]*(\.\d|[^\.]*\d\.\d|[^\.\d]*\d+)");
    if(m.Success)
    {
    return m.Groups[1].Value;
    }
    else
    {
    return "";
    }
    }
      

  7.   

    //C#代码string s = "a.bc.2.345BB45fd";
    string pattern = @"^(\D*(?=\.\d)|\D*(?=\d)|\D*)(\d*\.?\d*).*$";
    System.Text.RegularExpressions.Regex reg = new System.Text.RegularExpressions.Regex(pattern, System.Text.RegularExpressions.RegexOptions.IgnoreCase);
    string result = reg.Replace(s, "$2");