首页 > 解决方案 > 使用正则表达式从文件名中提取日期

问题描述

我有以下名称结构:

GuidAsString/yyyy/MM/dd.zip

一个例子:

e1e2e854-e1cd-4980-83bb-2a0273f904aa/2018/11/18.zip

我想使用正则表达式提取日期。正则表达式不是我的事。

更新:我正在尝试做类似的事情:

DateTime dateTime = DateTime.ParseExact(name, format, formatprovider)

我正在寻找格式。如果你有更优雅的方式那就更好了。

我会很感激你的帮助。

标签: c#regexstringdatetime

解决方案


string input = @"e1e2e854-e1cd-4980-83bb-2a0273f904aa/2018/11/18.zip";
string pattern = @"/(\d+/\d+/\d+)";
var match = Regex.Match(input, pattern);
var date = DateTime.Parse(match.Groups[1].Value);
WriteLine(date.ToShortDateString());
// Prints: 18.11.2018

单线:

var date = DateTime.Parse(Regex.Match(@"e1e2e854-e1cd-4980-83bb-2a0273f904aa/2018/11/18.zip", @"/(\d+/\d+/\d+)").Groups[1].Value);

推荐阅读