Таким образом, у меня может быть 1 или более лет в строке, которая может быть в формате 2 цифры, то есть «18», 4 цифры, то есть «2018», полная строка даты, например, «12/04/2018», или их комбинация.Используя regex в c #, мне нужно перебрать эту строку, чтобы получить все значения, содержащие год, в любом из этих форматов и увеличить его на 1 год.
Например, эта строка
"Это строка, состоящая из двухзначного года - 15, четырехзначного года - 2015 и даты с 01.01.2015 по 02.03.2016"
должно стать
"Это строка, состоящая из двухзначного года - 16, четырехзначного года - 2016 и даты с 01.01.2016 по 02.02.2017"
Проблема с этим кодом связана с использованием даты, когда индекс выходит за пределы допустимого диапазона.Мне нужна логика, которая справится с этими 3 годами формата, пожалуйста.Если он содержит автономные действительные цифры 2 года, 4 цифры или дату (формат дд / мм / гггг), то критерии
public string Increment(string text)
{
if (text == null) return null;
var builder = new StringBuilder(text);
var matches = Regex.Matches(text, @"\b(?:\d{4}|\d{2})\b");
foreach (Match match in matches)
{
if (match.Success)
{
builder.Remove(match.Index, match.Length);
builder.Insert(match.Index, int.Parse(match.Value) + 1);
}
}
return builder.ToString();
}