2010-11-01 152 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