从带有扩展名的文件名中提取日期时间

时间:2015-08-25 12:22:08

标签: c# asp.net regex

我想从字符串中提取日期。

字符串:_21_BT_Txn_Details_1-Aug-2015_1031389ACF6.zip

怎么做?

2 个答案:

答案 0 :(得分:0)

试试这个:

\d{1,2}-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-\d{4}

正则表达式符号的演示和解释:https://regex101.com/r/lW9yI3/2

假设:

  • 日可能是一两位数
  • 年份总是四位数
  • 本月使用标准三字母缩写

答案 1 :(得分:0)

您可以使用以下代码,该代码可以在字符串中提取超过1个日期,如您提供的日期:

var txt = "_21_BT_Txn_Details_1-Aug-2015_1031389ACF6.zip";
DateTime dt;
var res = txt.Split('_').Where(p => DateTime.TryParse(p, out dt)).ToList();

或者,如果您始终使用上述格式(day-MON-year),请使用

DateTime.TryParseExact(p, "d-MMM-yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out dt)

这里不需要正则表达式。

enter image description here