-1

大家早上好,世界末日快乐,我有一个与日期无关的问题,与世界末日无关

我正在尝试在文本文档中查找日期。带有日期的行前面和后面都有文本,但是当我使用TryParseExact时,我似乎只能在文本行的开头找到日期。

我将如何更改以下代码以搜索文本行中大约 20 个字符的日期?

DateTime d = DateTime.Now;
            var format1 = "dd/MM/yyyy";
            var fileDates1 = System.IO.File.ReadAllLines(z)
                            .Where(l => l.Length >= format1.Length
                                        && DateTime.TryParseExact(l.Substring(0, format1.Length)
4

2 回答 2

1

您可以使用正则表达式在文本中查找您的日期;

String text = File.ReadAllLines(z);
String pattern = @"\d{2}/\d{2}/\d{4}";
String dateString = Regex.Match(text, pattern).Value;
于 2012-12-21T10:12:06.380 回答
0

您的代码确实只在行首进行检查。

您可以结合正则表达式来查找看起来像日期的内容,然后正确解析以检查“日期”是否有效:

DateTime d;
var format1 = "dd/MM/yyyy";
Regex r = new Regex("[0-3][0-9]/[0-1][0-9]/[0-9]{4}");
var linesWithDates = System.IO.File.ReadAllLines(z)
    .Where(l => r.Matches(l).Cast<Match>()
         .Any(DateTime.TryParseExact(m.Value, format1, ...)));
于 2012-12-21T10:20:19.687 回答