我想从字符串中删除字母。什么是最好的方法。更确切地说,我有一个系统的MAC地址,我想只从中提取数字。我发现了这篇文章或stackoverflow。 link text
我想知道,如果使用正则表达式是最好的方法,或者有其他方法(可能使用LINQ)。
答案 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);