Convert.ToDouble非数字字符串

时间:2010-11-03 18:00:43

标签: c# regex string

我想从可能包含非数字字符的字符串中提取数字

我在想Convert.ToDouble(Regex.Replace(data[i].ToString(), @"ANSWER HERE", ""));

示例字符串:"wd123.321dw" 想要获得123.321。

对于否定词:"we-123.321ew"表示-123.321

任何线索?

3 个答案:

答案 0 :(得分:4)

这样的东西?

        string n = "wd123.321dw";
        var regNumber = new Regex(@"\-?\d+\.?\d+");

        var match = regNumber.Match(n);
        if ( match.Success )
        {
            double d;
            if ( Double.TryParse(match.Value, out d) )
            {
                Console.WriteLine("The number is: {0}",d);
            }
        }

答案 1 :(得分:1)

double d_val = Convert.ToDouble(Regex.Replace(data[i].ToString(), @"[^0-9\.\-]", ""));

答案 2 :(得分:0)

尝试将此作为正则表达式:

"0+" + Regex.Escape(CultureInfo.CurrentUICulture.NumberFormat.NumberDecimalSeparator) + "0+"

这将使用Windows当前区域设置的小数点分隔符。