这是使用正则表达式的简单解决方案:
var number = Regex.Match(input, @"(.*\D|^)(\d+)").Groups[2].Value;
Run Code Online (Sandbox Code Playgroud)
或者稍微不同的解决方案,一点点Linq投入了很好的措施:
var number = Regex.Matches(input, @"\d+").Cast<Match>().Last().Value;
Run Code Online (Sandbox Code Playgroud)
这是一个使用普通旧for循环的解决方案; 不需要Linq或正则表达式:
int start = 0, end = 0;
for (var i = input.Length - 1; i >= 0; i--) {
if (char.IsDigit(input[i]))
{
end = i + 1;
while (i >= 0 && char.IsDigit(input[i])) i--;
start = i + 1;
break;
}
}
var number = input.Substring(start, end - start);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
991 次 |
| 最近记录: |