Перестановка частей строки на примере обработки даты ‘dd.mm.YYYY’ в ‘YYYY-mm-dd’ с помощью Regex в C#

Классическая задача – преобразование формата даты. В C# есть широкий набор с выводом даты в нужном формате, но, когда дата приходит в виде строки, проще воспользоваться классическим разбором строки с использованием регулярных выражений. Ниже пример, как это сделать.

Я использую метод Replace класса Regex, конструкция следующая:

Regex.Replace (string input, string pattern, string replacement, RegexOptions options)

Допустим, к нам приходит дата в формате ‘dd.mm.YYYY’, например, ‘01.12.2005’, а нам надо получить ‘YYYY-mm-dd’.

Тогда строка замены с регулярным выражением будет следующая:

Regex.Replace(datein, «(?<day>\\d{2}).(?<month>\\d{2}).(?<year>\\d{4})», «${year}-${month}-${day}», RegexOptions.None)

Но это не все, что можно сделать с регулярными выражениями в C#. Например, можно предусмотреть возможность даты входящей даты не только в формате ‘d.m.YY’. Ниже более универсальное выражение – оно захватит больше возможных вариантов. Правда вывод будет с таким же количеством разрядов, что и на входе.

Regex.Replace(datein, «(?<day>\\d{1,2}).(?<month>\\d{1,2}).(?<year>\\d{2,4})», «${year}-${month}-${day}», RegexOptions.None);

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *