在C#中简单获取字符串(忽略末尾的数字)

4 c# text-parsing

我认为正则表达式是矫枉过正也需要一些时间来编写一些代码(我想我现在应该学习我知道一些正则表达式).

什么是用字母数字字符串分隔字符串的最简单方法?它永远是LLLLDDDDD.我只想要字母(l's),通常只有1或2个字母.

Mic*_*tum 11

TrimEnd:

string result = input.TrimEnd(new char[]{'0','1','2','3','4','5','6','7','8','9'});
// I'm sure using LINQ and Range can simplify that.
// also note that a string like "abc123def456" would result in "abc123def"
Run Code Online (Sandbox Code Playgroud)

但RegEx也很简单:

string result = Regex.Match(input,@"^[^\d]+").Value;
Run Code Online (Sandbox Code Playgroud)

  • RegEx解决方案不起作用.对于输入:asfsdf23424Aasdfsf222,它将输出asfsdf.它应该是asfsdf23424Aasdfsf (3认同)

Ahm*_*eed 10

我更喜欢Michael Stum的正则表达式答案,但这里也是一个LINQ方法:

string input = "ABCD1234";
string result = new string(input.TakeWhile(c => Char.IsLetter(c)).ToArray());
Run Code Online (Sandbox Code Playgroud)