2013-09-25 41 views
2

我對正則表達式不太瞭解,並且很難理解如何實現它來解決我的問題。
基本上我有一個文件名,它的名字中包含今天的日期,我想用昨天的日期替換它。替換字符串中的日期正則表達式

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

我需要更換部分2013年9月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)) 

回答

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

+0

這是我的第一個想法,但是當我運行它 – user2814753

+0

由於它不會改變任何東西很多,現在 – user2814753

+0

非常好的替代工程正則表達式。 – ZenLulz

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