替换字符串正则表达式中的日期

本文关键字:日期 正则表达式 字符串 替换 | 更新日期: 2023-09-27 18:32:47

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

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

替换字符串正则表达式中的日期

你不需要正则表达式,只需使用 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} .

请参阅此示例

考虑以下几点...

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