如何在C#中只从字符串中获取第一个字母

Sam*_*Sam 6 c#

我是C#的新手,我正在使用Windows窗体.我正在处理Postcodes字符串,我试图从Post代码中获取第一个字母并将其存储在变量中,例如:

BL9 8NS(我想获得BL)

L8 6HN(我想得到L)

CH43 7TA(我想得到CH)

WA8 7LX(我想要WA)

我只想获得数字前的第一个字母,你可以看到字母的数量可以是1或2,也许3.任何人都知道怎么做?谢谢

Ofi*_*ten 17

因为stringimlements IEnumerable<char>,使用Linq TakeWhile并且char.IsLetter非常容易:

string firstLetters = string.Concat(str.TakeWhile(char.IsLetter));
Run Code Online (Sandbox Code Playgroud)


Swe*_*per 5

使用带有组的正则表达式匹配第一个字母.

这是你需要的正则表达式:

^([a-zA-Z]+)
Run Code Online (Sandbox Code Playgroud)

你可以像这样使用它:

Regex.Match("BL9 8NS", "^([a-zA-Z]+)").Groups[1].Value
Run Code Online (Sandbox Code Playgroud)

上述表达式将评估为"BL".

记得添加一个using指令System.Text.RegularExpressions!