using System;
using System.Linq;
using System.Collections.Generic;
using System.Text.RegularExpressions;
public class Test
{
public static void Main()
{
var groups = new Dictionary<string, string>
{
{ "month", @"(JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC)" },
{ "day", @"\d+" },
{ "hour", @"\d+" },
{ "the_rest", @".*" },
};
var format = "{month} {day} {hour}:{the_rest}";
var result = Regex.Replace(format, @"\{(\w+)\}", m => groups[m.Groups[1].Value]);
Console.WriteLine(result);
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uTGlucTsKdXNpbmcgU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWM7CnVzaW5nIFN5c3RlbS5UZXh0LlJlZ3VsYXJFeHByZXNzaW9uczsKCnB1YmxpYyBjbGFzcyBUZXN0CnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBNYWluKCkKCXsKICAgIHZhciBncm91cHMgPSBuZXcgRGljdGlvbmFyeTxzdHJpbmcsIHN0cmluZz4KICAgIHsKICAgICAgICB7ICJtb250aCIsIEAiKEpBTnxGRUJ8TUFSfEFQUnxNQVl8SlVOfEpVTHxBVUd8U0VQfE9DVHxOT1Z8REVDKSIgfSwKICAgICAgICB7ICJkYXkiLCBAIlxkKyIgfSwKICAgICAgICB7ICJob3VyIiwgQCJcZCsiIH0sCiAgICAgICAgeyAidGhlX3Jlc3QiLCBAIi4qIiB9LAogICAgfTsKCiAgICB2YXIgZm9ybWF0ID0gInttb250aH0ge2RheX0ge2hvdXJ9Ont0aGVfcmVzdH0iOwogICAgdmFyIHJlc3VsdCA9IFJlZ2V4LlJlcGxhY2UoZm9ybWF0LCBAIlx7KFx3KylcfSIsIG0gPT4gZ3JvdXBzW20uR3JvdXBzWzFdLlZhbHVlXSk7CgogICAgQ29uc29sZS5Xcml0ZUxpbmUocmVzdWx0KTsKCX0KfQ==