对你们所有人来说,早上好,世界末日快乐,我有一个与非世界末日相关的日期相关问题
我正在尝试在文本文档中找到日期。带有日期的行在其前面和后面有文本,但是当我使用 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)
答案 0 :(得分:1)
您可以使用regular expression在文字中查找日期;
String text = File.ReadAllLines(z);
String pattern = @"\d{2}/\d{2}/\d{4}";
String dateString = Regex.Match(text, pattern).Value;
答案 1 :(得分: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, ...)));