从字符串中删除字母

3
我想从一个字符串中删除字母。最好的方法是什么?更准确地说,我有一个系统的MAC地址,我只想从中提取数字。我在这篇文章或stackoverflow上找到了这个链接:link text
我想知道是否使用正则表达式是最好的方法,还是有其他方法可以做到这一点(也许使用LINQ)。

你想要结果是数字还是字母? - Brian Rasmussen
1
只是出于好奇,有什么情况需要从MAC地址中移除字母? - user470379
我已经开始处理DICOM文件,有一些工具可以修改这些文件的属性。我正在尝试更改其中的“StudyInstanceUID”。我想生成一个新的“StudyInstanceUID”,但是DICOM标准不允许(至少是我的理解)在“StudyInstanceUID”中使用字母。 - Sandy
3个回答

6
为了获取数字,您可以使用这个正则表达式:
var digits = Regex.Replace(text, @"\D", "");

\D 匹配任何非数字字符,因此去除它们将给出剩余的数字。


\D 包括 + 或 = 吗?它也会被替换掉吗 :-/ - Sangram Nandkhile

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

我正准备更新我的答案,内容类似。谢谢。 - Brian Rasmussen
@Brian 谢谢,我对正则表达式的方法也非常满意。 - Ahmad Mageed

0

这将替换任何不是数字的内容,并只留下数字:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接