Попробуйте это:
string fileContent = File.ReadAllText(@"path to txt file");
Match match = Regex.Match(fileContent, @"Script Start Date: (.+)\nScript Start Time: (.+)");
if (match.Success)
{
// Here I use Substring method, to cut out "Fri", as it's not necessary to parse to DateTime
DateTime.TryParse(match.Groups[1].Value.Substring(4) + " " + match.Groups[2], out DateTime dt);
Console.WriteLine(dt);
Console.ReadKey();
}
Объяснение шаблона: Script Start Date: (.+)\nScript Start Time: (.+)
:
Сначала он ищет слова Script Start Date:
, затем он захватывает в первую группу все до концастрока (часть даты), затем она соответствует символу новой строки (\n
), затем снова буквально соответствует Script Start Time:
и затем захватывает остаток строки во вторую группу захвата (часть времени).
Затем япроверьте, было ли совпадение успешным, если оно было, используйте группирующие группы для создания DateTime
переменной.
РЕДАКТИРОВАТЬ:
Используйте этот шаблон Script Start Date: \w+ (.+)\nScript Start Time: (.+)
, так что вы можете объединить две группы и непосредственно иметьdatetime в хорошо известном формате (я добавил \w+
, чтобы соответствовать Fri
, день в целом, и захватил только правильную часть даты).Затем используйте первую и вторую группы захвата, чтобы иметь дату.