如何替换包含格式信息的字符串

时间:2014-07-11 17:42:05

标签: c# .net regex string replace

我有一个c#字符串,其中包含我需要用有效数据替换的信息,并按照定义格式化。例如,以下是初始字符串的一些示例:

Here is my test [Date{yyyyMMdd}] string
Here is my test [Date{yyyy_MM_dd}] string

我需要在字符串中找到[Date {yyyymmdd}]或[Date {yyyy_mm_dd}]部分,并替换{}部分内定义的格式化日期。上面的例子将产生以下结果:

Here is my test 20140711 string
Here is my test 2014_07_11 string

如何对此进行编程以在括号中找到字符串,然后在其中的大括号中使用格式信息?我可以使用以下正则表达式找到我需要的部分但我不知道如何使用它来获取我想要的输出并使用{}内部的区域来根据需要格式化日期: / p>

(\[Date\{(?<format>.*)\}\])

1 个答案:

答案 0 :(得分:3)

您可以使用Regex.Replace的重载来使代理处理匹配:

string testString = "Here is my test [Date{yyyyMMdd}] string";
Regex.Replace(testString, @"(\[Date\{(?<format>.*)\}\])", match => DateTime.Now.ToString(match.Groups["format"].Value));