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

Posted med1tator

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用正则匹配并填充文本模板相关的知识,希望对你有一定的参考价值。

需求说明:

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

设计说明:

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

 

运行结果:

技术分享图片

 

以上是关于使用正则匹配并填充文本模板的主要内容,如果未能解决你的问题,请参考以下文章

正则表达式基础

PHP匹配并替换自定义文本中的变量

留言板过滤 脏字 问题 求 一个能用的 正则表达式匹配并替换. 如过滤 TextBox1 里面的文本

python 正则表达式

正则表达式

python 正则表达式 re模块基础