从字符串中删除字母

时间:2010-11-01 18:40:46

标签: c#

我想从字符串中删除字母。什么是最好的方法。更确切地说,我有一个系统的MAC地址,我想只从中提取数字。我发现了这篇文章或stackoverflow。 link text

我想知道,如果使用正则表达式是最好的方法,或者有其他方法(可能使用LINQ)。

3 个答案:

答案 0 :(得分:6)

要获取数字,您可以使用此正则表达式:

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

\D匹配任何非数字的内容,因此删除这些内容会为您提供剩余的数字。

答案 1 :(得分: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); }));

答案 2 :(得分:0)

这将取代任何不是数字的东西,只留下数字:

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