1

可能重复:
基于用户的字符串模板

我有一个格式的字符串Your invoice ref %name% is overdue by %age% days,我想用运行时来自对象的数据替换“%”字符之间的封装。

我有下面的代码,但到目前为止我只能使用括号(我无法锻炼正确的百分比正则表达式),我怎样才能使它适用于 %shortcode% 呢?

其次,我还必须左右修剪。是否可以简单地返回没有百分比的字符串?

public void GenerateReminderContent(string text, Invoice invoice)
{
    var result = Regex.Replace(text, @"\([^\]]*)\]", delegate(Match match)
    {
        var shortcode = match.Value.ToLower();
        shortcode = shortcode.TrimEnd(']');
        shortcode = shortcode.TrimStart('[');

        if (shortcode == "name")
            return invoice.Name;
        else if (shortcode == "age")
            return invoice.Age;
        else
            return "unknown-shortcode";
     });
}
4

0 回答 0