Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从字符串中删除字母表_C# - Fatal编程技术网

C# 从字符串中删除字母表

C# 从字符串中删除字母表,c#,C#,我想删除字符串中的字母。最好的方法是什么。更准确地说,我有一个系统的MAC地址,我只想从中提取数字。我找到了这篇文章或stackoverflow 我想知道,使用正则表达式是最好的方法还是有其他方法(可能使用LINQ)。这将取代任何不是数字的东西,只留下数字: string text = "abc123abc:13sdf2"; string numbers = Regex.Replace(text, @"[^\d]+", ""); Console.W

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


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

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

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

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

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

\D
匹配任何非数字的内容,因此删除这些内容将获得剩余的数字

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); }));

您希望结果是数字还是字母?出于好奇,需要从MAC地址中删除字母的情况是什么?我已经开始处理DICOM文件,有一些工具可以让您修改这些文件中的属性。我正试图改变“学习状态UID”的说法。我想生成一个新的“StudyInstanceUID”,而DICOM标准不允许(至少我是这么理解的)“StudyInstanceUID”中的字母。我只是想用类似的东西更新我的答案。谢谢。@Brian谢谢,我对正则表达式方法也非常满意。是否\D包含+或=它也被替换了:-/