正则表达式替换.NET中百分比%包裹的字符串

时间:2012-08-21 21:15:15

标签: c# .net regex

  

可能重复:
  User based string template

我有一个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";
     });
}

0 个答案:

没有答案