如何只从C#中的字符串中获取字母?
我有一个字符串,需要来自所述字符串的字母。
string s = "EMA123_33"; // I need "EMA" string s = "EMADRR123_33"; // I need "EMADRR"
我在Visual Studio 2008中使用C#。
你可以试试这个:
var myString = "EMA123_33"; var onlyLetters = new String(myString.Where(Char.IsLetter).ToArray());
请注意:这个版本会发现“e”就像“E” – 如果你只需要大写字母,那么做这样的事情:
var myString = "EMA123_33"; var onlyLetters = new String(myString.Where(c => Char.IsLetter(c) && Char.IsUpper(c)).ToArray());
您可以使用正则表达式替换所有非字母:
string s2 = Regex.Replace(s, @"[^AZ]+", String.Empty);
如果你刚刚在首字母之后,即字符串开头的字母(你的例子有点不清楚,我不知道字符串末尾的字母会发生什么),你可以使用不同的字母正则表达式:
string s2 = Regex.Replace(s, @"(\p{L}+).*", "$1");
Regex MyRegex = new Regex("[^az]", RegexOptions.IgnoreCase); string s = MyRegex.Replace(@"your 76% strings &*81 gose _ here and collect you want_{ (7 438 ?. !`", @""); Console.WriteLine(s);
产量
yourstringsgosehereandcollecyouwant