using System.Text.RegularExpressions;
…
var source = "0000015700";
var pattern = @"\d{5}[1-9](?=0*$)";
var result = Regex.Match(source, pattern);
if(result.Success)
{
Console.WriteLine(result.Groups[0]);
}
Если вы не знакомы с регулярными выражениями, это язык для сопоставления строковых шаблонов, который встроен практически во все языки программирования общего назначения. Шаблон выше будет соответствовать вашей входной строке, если:
\d{5}
: у вас есть 5 последовательных цифр
[1-9]
: за ним следует любая цифра от 1 до 9 (не ноль)
(?=0*$)
: за ним следует ноль или более 0
с, а $
обозначает конец строки
Поскольку я добавил этот последний бит в (?= )
, движок знает, что этот материал должен быть там, но не должен быть частью матча; это называется "позитивный взгляд"