在字符串Regex中替换日期

时间:2013-09-25 10:29:12

标签: c# regex string datetime datetime-format

我对正则表达式不是很了解并且很难理解如何实现它来解决我的问题。
基本上我有一个文件名,它的名字将以今天的日期为特色,我想用它替换它昨天的约会。

var fName = "XX_YYYYYYYYYY_ZZZZZZ_2013-09-25_QQQQQ_IIII.xml";

我需要更换2013-09-24部分 这样新文件名就是

  

XX_YYYYYYYYYY_ZZZZZZ_2013-09-24_QQQQQ_IIII.xml

这是我编制日期的方式:

String dateToday = String.Format("{0: yyyy-MM-dd}", DateTime.Today)
string dateLast = String.Format("{0: yyyy-MM-dd}", DateTime.Today.AddDays(-1))

2 个答案:

答案 0 :(得分:5)

您不需要正则表达式,只需使用String.Replace例如

var fName = "XX_YYYYYYYYYY_ZZZZZZ_2013-09-25_QQQQQ_IIII.xml";
var newName = fName.Replace(String.Format("{0:yyyy-MM-dd}", DateTime.Today), String.Format("{0:yyyy-MM-dd}", DateTime.Today.AddDays(-i)));

您的格式设置条件中有空白,为了实现此功能,您需要将其删除,即将{0: yyyy-MM-dd}替换为{0:yyyy-MM-dd}

请参阅此example

答案 1 :(得分:1)

考虑以下内容......

var fName = "XX_YYYYYYYYYY_ZZZZZZ_2013-09-25_QQQQQ_IIII.xml";
var newFName= Regex.Replace(fName, DateTime.Today.ToString("yyyy-MM-dd"), DateTime.Today.AddDays(-1).ToString("yyyy-MM-dd"));