我想帶上的string
只具有數值和一個小數點.... 什麼是錯我的正則表達式?簡單的數字正則表達式不工作
string test = "1e2e3.e4";
var s = Regex.Replace(test, "^\\d*\\.\\d*$", "");
我想帶上的string
只具有數值和一個小數點.... 什麼是錯我的正則表達式?簡單的數字正則表達式不工作
string test = "1e2e3.e4";
var s = Regex.Replace(test, "^\\d*\\.\\d*$", "");
你在做什麼的條帶化掉一個十進制數,試試這個來代替:
Regex.Replace(test, "[^\\d.]", "");
如果你想保持只有一個點,你首先需要確定要保留哪個點如果有很多的話。
更新:假設你想保持第一或最後一個點,用String.IndexOf
或String.LastIndexOf
分割字符串及用途:
Regex.Replace(test, "\\D", "");
每個生成的字符串的。這可能會比不使用正則表達式慢得多,因爲在馬特漢密爾頓答案很難。
string test = "1e2e3.e4";
var s = Regex.Replace(test, @"[^\d\.]", "");
如果我沒有弄錯,那會留下'^'字符。 – 2011-02-10 04:15:21
正則表達式可能會爲您的需要矯枉過正。
string test = "1e2e3.e4.56543fds.4";
var foundPeriod = false;
var chars = test.Where(c => Char.IsDigit(c)
|| (c == '.' && !foundPeriod && (foundPeriod = true))).ToArray();
Console.WriteLine(new String(chars));
您正在使用正則表達式進行匹配,但它們正在替換?正則表達式很好匹配你正在尋找的東西。但是如果您想要替換無效字符,則需要定義您想要的內容。鑑於`1.2.3.4`,結果應該是什麼? `123.4`? `1.234`? `12.34`?等... – ircmaxell 2011-02-10 04:06:13
我只想讓數字和小數點。我將以不同的方式處理多個小數點,具體取決於我的控件的一些屬性......這可能嗎? – Gabe 2011-02-10 04:10:36