「WX GSA 検索」で「経過時間」の合計を計算したいのですが、ログ ファイルは次のとおりです。
WX 検索 = サーバー:nomos-scanner.corp.adobe.com ユーザー:vibsharm appGUID:wx 経過時間:875ms SaveSearchID:361 WX GSA 検索 = サーバー:nomos-scanner.corp.adobe.com ユーザー:gulanand appGUID:wx 経過時間:890ms SaveSearchID:361 WX GSA 検索 = サーバー:nomos-scanner.corp.adobe.com ユーザー:vibsharm appGUID: wx 経過時間:887ms SaveSearchID:361 WX GSA 検索 = サーバー:nomos-scanner.corp.adobe.com ユーザー: gulanand appGUID: wx Elapsed Time:875.5ms SaveSearchID:361 WX GSA Search = Server:nomos-scanner.corp.adobe.com User:vibsharm appGUID: wx Elapsed Time:877.6ms SaveSearchID:361
私が書いたコードが機能していません。大丈夫かどうか、正規表現を確認してください:
string searchKeyword = "WX GSA Search";
string fileName = @"C:\Users\karan\Desktop\Sample log file.txt";
string[] textLines = File.ReadAllLines(fileName);
List<string> results = new List<string>();
foreach (string line in textLines)
{
if (line.Contains(searchKeyword))
{
results.Add(line);
}
}
string x = string.Join(",",results);
List<string> users = new List<string>();
Regex regex = new Regex(@"Elapsed Time:\s*(?<timevalue>.*?)+ms");
MatchCollection matches = regex.Matches(x);
foreach (Match match in matches)
{
var user = match.Groups["value"].Value;
if (!users.Contains(time)) users.Add(time);
}
string[] s = users.ToArray();