Use this regular expression:
\d+$
// RegexOptions.RightToLeft – is optional, but will increase performance
var result = Regex.Match(input, @"\d+$", RegexOptions.RightToLeft).Value;
or one-liner without regex:
var result = input[^input.Reverse().TakeWhile(char.IsDigit).Count()..];
or more efficient way:
int numberOfDigitsAtEnd = 0;
for (var i = input.Length - 1; i >= 0; i--)
{
if (!char.IsDigit(input[i]))
{
break;
}
numberOfDigitsAtEnd++;
}
var result = input[^numberOfDigitsAtEnd..];