Как получить только буквы из строки в C #? - PullRequest
28 голосов
/ 06 сентября 2011

У меня есть строка, и мне нужны буквы из указанной строки.

string s = "EMA123_33";    // I need "EMA"
string s = "EMADRR123_33"; // I need "EMADRR"

Я использую C # в Visual Studio 2008.

Ответы [ 4 ]

59 голосов
/ 06 сентября 2011

Вы можете попробовать это:

var myString = "EMA123_33";
var onlyLetters = new String(myString.Where(Char.IsLetter).ToArray());

пожалуйста, обратите внимание: эта версия найдет «е» так же, как «Е» - если вам нужны только заглавные буквы, сделайте что-то вроде этого:

var myString = "EMA123_33";
var onlyLetters = new String(myString.Where(c => Char.IsLetter(c) && Char.IsUpper(c)).ToArray());
11 голосов
/ 06 сентября 2011

Вы можете использовать регулярное выражение для замены всех не букв:

string s2 = Regex.Replace(s, @"[^A-Z]+", String.Empty);
4 голосов
/ 06 сентября 2011

Если вы просто набираете начальные буквы, то есть те, что находятся в начале строки (ваши примеры немного неясны в том смысле, что я не знаю, что будет с буквами в концестрока), вы можете использовать другое регулярное выражение:

string s2 = Regex.Replace(s, @"(\p{L}+).*", "$1");
2 голосов
/ 25 июня 2016
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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...