【发布时间】:2013-12-18 07:11:04
【问题描述】:
我正在尝试学习编写一个基本的模板引擎实现。例如我有一个字符串:
string originalString = "The current Date is: {{Date}}, the time is: {{Time}}";
读取每个{{}} 的内容然后用有效字符串替换整个令牌的最佳方法是什么?
编辑:感谢 BrunoLM 为我指明了正确的方向,到目前为止,这就是我所拥有的,它解析得很好,我还能做些什么来优化这个功能吗?
private const string RegexIncludeBrackets = @"{{(.*?)}}";
public static string ParseString(string input)
{
return Regex.Replace(input, RegexIncludeBrackets, match =>
{
string cleanedString = match.Value.Substring(2, match.Value.Length - 4).Replace(" ", String.Empty);
switch (cleanedString)
{
case "Date":
return DateTime.Now.ToString("yyyy/MM/d");
case "Time":
return DateTime.Now.ToString("HH:mm");
case "DateTime":
return DateTime.Now.ToString(CultureInfo.InvariantCulture);
default:
return match.Value;
}
});
}
【问题讨论】:
-
努力努力!!!。一个简单的谷歌搜索就可以了
-
这里是提示,从 msdn 阅读
boxing/unboxing和String.Format -
@BrunoLM 如果 OP 表现出最轻微的努力解决他的问题的迹象,我会很乐意提供帮助。我想知道为什么这是来自 20k+ 代表用户
标签: c# template-engine