2010-11-01 153 views
3

我想從字符串中刪除字母。什麼是最好的方式來做到這一點。更確切地說,我有一個系統的MAC地址,我只想從中提取數字。我發現了這篇文章或者計算器。 link text從字符串中刪除字母

我想知道,如果使用正則表達式是最好的方法或有其他方法來做到這一點(也許使用LINQ)。

+0

你想要得到的結果是數字或字母? – 2010-11-01 18:42:08

+0

只是數字 – Sandy 2010-11-01 18:45:35

+1

出於好奇,這種情況下需要從MAC地址中刪除字母是什麼? – user470379 2010-11-01 18:48:41

回答

7

要獲得數字,你可以使用這個表達式:

var digits = Regex.Replace(text, @"\D", ""); 

\D匹配任何不一個數字,所以刪除它們會給你剩下的數字。

+0

是否\ D包括+或=它也被替換: -/ – 2012-10-01 13:54:47

0

這將取代任何東西,這不是一個數字,留給你只是數字:

 string text = "abc123abc:13sdf2"; 
     string numbers = Regex.Replace(text, @"[^\d]+", ""); 
     Console.WriteLine(numbers); 
2

的LINQ的方法是如下:

string input = "12-34-56-78-9A-BC"; 
string result = new String(input.Where(Char.IsDigit).ToArray()); 

非LINQ/2.0方法:

string result = new String(Array.FindAll(input.ToCharArray(), 
        delegate(char c) { return Char.IsDigit(c); })); 
+0

我只是要用類似的東西來更新我的答案。謝謝。 – 2010-11-01 18:58:20

+0

@布萊恩謝謝,我也非常滿意正則表達式的方法。 – 2010-11-01 19:03:54