这是我的伪模板
Dear {User},
Your job finished at {FinishTime} and your file is available for download at {FileURL}.
Regards,
{Signature}
我在 Google 中搜索 c# 中的模板解析,发现了几个不错的库,但这些库完全适用于 c 4.0 版本。我正在使用 c# v2.0。所以任何人都可以向我推荐任何用于解析 c# v2.0 的字符串模板的好库。只是简单地讨论一下在 c# 2.0 中解析字符串模板的最佳和简单的方法。谢谢
我用 RegEx 得到了一个简单的解决方案
string template = "Some @@Foo@@ text in a @@Bar@@ template";
StringDictionary data = new StringDictionary();
data.Add("foo", "random");
data.Add("bar", "regex");
string result = Regex.Replace(template, @"@@([^@]+)@@", delegate(Match match)
{
string key = match.Groups[1].Value;
return data[key];
});
using System;
using System.Collections.Generic;
using System.Text.RegularExpressions;
class Program {
static void Main() {
var template = " @@3@@ @@2@@ @@__@@ @@Test ZZ@@";
var replacement = new Dictionary<string, string> {
{"1", "Value 1"},
{"2", "Value 2"},
{"Test ZZ", "Value 3"},
};
var r = new Regex("@@(?<name>.+?)@@");
var result = r.Replace(template, m => {
var key = m.Groups["name"].Value;
string val;
if (replacement.TryGetValue(key, out val))
return val;
else
return m.Value;
});
Console.WriteLine(result);
}
}