码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2018-06-20 13:02:18      阅读:211      评论:0      收藏:0      [点我收藏+]

标签:代码实现   static   字段   write   OLE   trim   ace   数据库   pat   

需求说明:

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

设计说明:

根据固定的文本模板,在模板中替换必要的值文本内容。例如:【待办提醒】${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;
}

 

运行结果:

技术分享图片

 

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

标签:代码实现   static   字段   write   OLE   trim   ace   数据库   pat   

原文地址:https://www.cnblogs.com/Med1tator/p/9203005.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!