字符串解析,提取数字和字母

Mat*_*ren 5 c# regex string text-parsing

什么是解析字符串并提取数字和字母的最简单方法?我的字符串可以是以下格式(数字|字母或字母|数字),即"10A","B5","C10","1G"等.

我需要提取2个部分,即"10A" - >"10"和"A".

更新:感谢大家提供的所有优秀答案

Sam*_*uel 12

最简单的方法可能是使用正则表达式.

((?<number>\d+)(?<letter>[a-zA-Z])|(?<letter>[a-zA-Z])(?<number>\d+))
Run Code Online (Sandbox Code Playgroud)

然后,您可以将其与字符串匹配,并从组中提取值.

Match match = regex.Match("10A");
string letter = match.Groups["letter"].Value;
int number = int.Parse(match.Groups["number"].Value);
Run Code Online (Sandbox Code Playgroud)


Guf*_*ffa 6

最简单,最快速的是使用简单的字符串操作.使用该IsDigit方法检查字母的位置,并将字符串的其余部分解析为数字:

char letter = str[0];
int index = 1;
if (Char.IsDigit(letter)) {
   letter = str[str.Length - 1];
   index = 0;
}
int number = int.Parse(str.Substring(index, str.Length - 1));
Run Code Online (Sandbox Code Playgroud)