次の形式のログ ファイルがあります。
INFO [SearchServices] WX Search = Server:nomos-scanner.corp.adobe.com User:ashishg appGUID: wx Elapsed Time:875ms SaveSearchID:361
INFO [SearchServices] WX Search = Server:nomos-scanner.corp.adobe.com User:ashishg appGUID: wx Elapsed Time:875ms SaveSearchID:361
INFO [SearchServices] WX Search = Server:nomos-scanner.corp.adobe.com User: ashishg appGUID: wx Elapsed Time:875ms SaveSearchID:361
INFO [SearchServices] WX Search = Server:nomos-scanner.corp.adobe.com User:karansha appGUID: wx Elapsed Time:875ms SaveSearchID:361
INFO [SearchServices] WX Search = Server:nomos-scanner.corp.adobe.com User:gulanand appGUID: wx Elapsed Time:875ms SaveSearchID:361
INFO [SearchServices] WX Search = Server:nomos-scanner.corp.adobe.com User:ashishg appGUID: wx Elapsed Time:875ms SaveSearchID:361
私が試したコードは次のとおりです。
StreamReader reader = new StreamReader("test file path");
string x = reader.ReadToEnd();
List<string> users = new List<string>();
int numberOfUsers;
Regex regex = new Regex(@"User:(?<username>.*?) appGUID");
MatchCollection matches = regex.Matches(x);
foreach (Match match in matches)
{
if (!users.Contains(match.ToString())) users.Add(match.ToString());
}
Regex regex2 = new Regex(@"User: (?<username>.*?) appGUID");
matches = regex2.Matches(x);
foreach (Match match in matches)
{
if (!users.Contains(match.ToString())) users.Add(match.ToString());
}
numberOfUsers = users.Count;
Console.WriteLine(numberOfUsers);
// keep screen from going away
// when run from VS.NET`