public static TraceInfo ParseTrace(string input)
{
TraceInfo traceInfo = new TraceInfo();
System.Text.RegularExpressions.Match m = System.Text.RegularExpressions.Regex.Match(input, @"from.+?(?=(from|by|via|with|for|id|;|\r?\n))");
if (m.Success) traceInfo.From = m.Value;
m = System.Text.RegularExpressions.Regex.Match(input, @"(?<=by ).+?(?= ?(from|by|via|with|for|id|;|\r?\n))");
if (m.Success) traceInfo.By = m.Value;
m = System.Text.RegularExpressions.Regex.Match(input, @"(?<=via ).+?(?= ?(from|by|via|with|for|id|;|\r?\n))");
if (m.Success) traceInfo.Via = m.Value;
m = System.Text.RegularExpressions.Regex.Match(input, @"(?<=with ).+?(?= ?(from|by|via|with|for|id|;|\r?\n))");
if (m.Success) traceInfo.With = m.Value;
m = System.Text.RegularExpressions.Regex.Match(input, @"(?<=for ).+?(?= ?(from|by|via|with|for|id|;|\r?\n))");
if (m.Success) traceInfo.For = m.Value;
m = System.Text.RegularExpressions.Regex.Match(input, @"(?<=id ).+?(?= ?(from|by|via|with|for|id|;|\r?\n))");
if (m.Success) traceInfo.Id = m.Value;
traceInfo.Date = Parser.ParseAsUniversalDateTime(input.Substring(input.LastIndexOf(';')+1));
return traceInfo;
}
public static TraceInfoCollection ParseTraces(string[] input)