Как получить только буквы из строки в С#? У меня есть строка и нужны буквы из указанной строки. string s = "EMA123_33"; // I need "EMA" string s = "EMADRR123_33"; // I need "EMADRR" Я использую С# в Visual Studio 2008. Ответ 1 Вы можете попробовать следующее: 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()); Ответ 2 Вы можете использовать регулярное выражение для замены всех не-букв: string s2 = Regex.Replace(s, @"[^A-Z]+", String.Empty); Ответ 3 Если вы только после начальных букв, то есть те, которые находятся в начале строки (ваши примеры немного неясны, потому что я не знаю, что произойдет с буквами в конце строки), вы можете используйте другое Regex: string s2 = Regex.Replace(s, @"(\p{L}+).*", "$1"); Ответ 4 Regex MyRegex = new Regex("[^a-z]", RegexOptions.IgnoreCase); string s = MyRegex.Replace(@"your 76% strings &*81 gose _ here and collect you want_{ (7 438 ?. !`", @""); Console.WriteLine(s); Выход yourstringsgosehereandcollecyouwant
Ответ 1 Вы можете попробовать следующее: 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());
Ответ 2 Вы можете использовать регулярное выражение для замены всех не-букв: string s2 = Regex.Replace(s, @"[^A-Z]+", String.Empty);
Ответ 3 Если вы только после начальных букв, то есть те, которые находятся в начале строки (ваши примеры немного неясны, потому что я не знаю, что произойдет с буквами в конце строки), вы можете используйте другое Regex: string s2 = Regex.Replace(s, @"(\p{L}+).*", "$1");
Ответ 4 Regex MyRegex = new Regex("[^a-z]", RegexOptions.IgnoreCase); string s = MyRegex.Replace(@"your 76% strings &*81 gose _ here and collect you want_{ (7 438 ?. !`", @""); Console.WriteLine(s); Выход yourstringsgosehereandcollecyouwant