-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 に答える