我可以使用什么正则表达式来匹配日期格式和时间格式?

时间:2017-08-24 10:48:11

标签: c# regex

我需要从一个字符串中检索日期和时间,如下所示: " filename_20170818_010138.xml"我目前正在使用

(@"(?<date>\d\d\d\d\d\d\d\d)")

哪个适用于约会,但什么可能是获得时间的最佳方式 在一个单独的小组?

2 个答案:

答案 0 :(得分:0)

@"(?<Date>\d{8})_(?<Time>\d{6})"

这将为您提供日期组和时间组。使用RegexOptions.ExplicitCapture

答案 1 :(得分:0)

没有正则表达式,我会这样做:

string input = "filename_20170818_010138.xml";
var splitResult = input.Split(new string[] { "_", "." }
                        , StringSplitOptions.RemoveEmptyEntries);
var data = DateTime.ParseExact(splitResult[1] + splitResult[2]
                                , "yyyyMMddHHmmss"
                                , System.Globalization.CultureInfo.InvariantCulture);

如果您想使用_.处理文件名 您可以[1][2]替换splitResult.Length - 3splitResult.Length - 2。我让你不受约束的例外诉讼。