我想提取數出那些包含字符串的非數字字符Convert.ToDouble非數字串
我想Convert.ToDouble(Regex.Replace(data[i].ToString(), @"ANSWER HERE", ""));
例字符串:"wd123.321dw"
想要得到123.321出來那個。
也爲陰性:"we-123.321ew"
爲-123.321
任何線索?
我想提取數出那些包含字符串的非數字字符Convert.ToDouble非數字串
我想Convert.ToDouble(Regex.Replace(data[i].ToString(), @"ANSWER HERE", ""));
例字符串:"wd123.321dw"
想要得到123.321出來那個。
也爲陰性:"we-123.321ew"
爲-123.321
任何線索?
是這樣的嗎?
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);
}
}
double d_val = Convert.ToDouble(Regex.Replace(data[i].ToString(), @"[^0-9\.\-]", ""));
不適用於底片。我知道,當你回答它的時候,這並不是我的問題,在我能夠直接思考之前,回答來自SO! – Nick 2010-11-03 18:15:08
@Nick - 那好吧,我已經更新,包括字面' - '。這顯然不如driis的解決方案好,因爲他只會匹配有效的數字格式。 – SwDevMan81 2010-11-03 18:17:48
去檢查性能 - 如果你的速度明顯更快,它可能必須是我使用的方法! – Nick 2010-11-03 18:23:36
試試這個作爲你的正則表達式:
"0+" + Regex.Escape(CultureInfo.CurrentUICulture.NumberFormat.NumberDecimalSeparator) + "0+"
這將使用當前的區域設置小數點分隔符從Windows。
0+匹配一個或多個零。 – 2010-11-03 18:10:28
不得不說,我被這些迴應吹走了。一段時間沒有堆疊飛越,但現在笑了起來。謝謝! – Nick 2010-11-03 18:20:42