使用正则匹配并填充文本模板

需求说明:

实现文本内容的灵活配置。

设计说明:

根据固定的文本模板,在模板中替换必要的值文本内容。例如:【待办提醒】${DeparmentName}-${EmployeeName}休假申请,待您审批处理![${AbsenceDate}]

代码实现:

static void Main(string[] args)
{
    string originText = "【待办提醒】${DeparmentName}-${EmployeeName}休假申请,待您审批处理![${AbsenceDate}]";
    Console.Write(Match(originText));

    Console.ReadKey();
}

static string Match(string originText)
{
    string result = originText;

    // 相当于数据库
    Dictionary<string, string> dict = new Dictionary<string, string>
    {
        { "DeparmentName", "研发部" },
        { "EmployeeName", "Med1tator DING" },
        { "AbsenceDate", DateTime.Now.ToString("yyyy-MM-dd") }
    };

    // 正则表达式
    string pattern = @"\$\{[^\}]+\}";
    MatchCollection matchCollection = Regex.Matches(originText, pattern);   // 匹配结果项

    foreach (var match in matchCollection)
    {
        string key = match.ToString().Trim('$', '{', '}');   // dict的key,相当于获取数据库字段名
        string value = dict[key];                           // dict的value,相当于获取数据库字段值
        result = result.Replace(match.ToString(), value);   // 用字段值替换匹配项
    }

    return result;
}

 

运行结果:

 

posted @ 2018-06-20 11:38  pding  阅读(764)  评论(0编辑  收藏  举报