2

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

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))
4

2 回答 2

5

You don't need a regex for this, just use String.Replace e.g.

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)));

You have whitespace in your formatting condition, in order for this to work you need to remove that i.e. replace {0: yyyy-MM-dd} with {0:yyyy-MM-dd}.

See this example

于 2013-09-25T10:31:09.597 回答
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"));
于 2013-09-25T13:55:06.060 回答