Перестановка частей строки на примере обработки даты '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);


Комментариев нет »

No comments yet.

RSS feed for comments on this post. TrackBack URL

Leave a comment






MarkiMarta.ru. Записки отца-программиста" с 2009 г.
Категория информационной продукции 18+
Яндекс.Метрика