在字符串Regex中替换日期

use*_*753 2 c# regex string datetime datetime-format

我对正则表达式不太了解,并且很难理解如何实现它以解决我的问题.
基本上我有一个文件名,其名称将包含今天的日期,我想用昨天的日期替换它.

var fName = "XX_YYYYYYYYYY_ZZZZZZ_2013-09-25_QQQQQ_IIII.xml";
Run Code Online (Sandbox Code Playgroud)

我需要更换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))
Run Code Online (Sandbox Code Playgroud)

Jam*_*mes 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)));
Run Code Online (Sandbox Code Playgroud)

您的格式化条件中有空格,为了使其工作,您需要删除即替换{0: yyyy-MM-dd}{0:yyyy-MM-dd}.

看这个例子