我想从可能包含非数字字符的字符串中提取数字
我在想Convert.ToDouble(Regex.Replace(data[i].ToString(), @"ANSWER HERE", ""));
示例字符串:"wd123.321dw"
想要获得123.321。
对于否定词:"we-123.321ew"
表示-123.321
任何线索?
答案 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当前区域设置的小数点分隔符。