Регулярное совпадение с датой текущего года - PullRequest
0 голосов
/ 07 июля 2019

Я только начал изучать регулярные выражения.Я создал регулярное выражение для моего имени пользователя проекта, где я хочу:

  • 2 цифры дня

  • 2 цифры месяца

  • последние 2 цифры текущего года

  • наконец, последние 2 цифры года после 4 лет

т.е. мне нужновывод совпадения примерно такой:

23071923

где:

  • 23 - текущий день (дд)

  • 07это месяц (мм)

  • 19 - текущий год (ГГ)

  • 23 - год после 4 лет (гг)

Но я запутался, как он будет соответствовать текущему году и принимать только последние 2 цифры года.и как я могу сопоставить конец регулярного выражения правильно и 4 добавляется в год или нет?

1 Ответ

0 голосов
/ 07 июля 2019

Вы можете использовать трюк с заменой входной строки измененной строкой, которая выполняет математические операции:

var x = "23071923";
var x2 = Regex.Replace(x, @"^(\d{2})(\d{2})(\d{2})(\d{2})$", m =>
         m.Groups[1].Value + m.Groups[2].Value + m.Groups[3].Value +
         (int.Parse(m.Groups[3].Value) + 4));
bool is_match = x == x2;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...