-4

「appGUID」の値が「wx」または「null」のいずれかであるすべての行をプログラムで破棄したい

正規表現を使用してこれを実現するにはどうすればよいですか。この後、「WXEditBug」の一意の値が返されるはずです。試しましたが、コードにバグがあるようです。

正規表現のパターンがわかりません。助けてください。

私のログファイルの形式は次のとおりです。

INFO [com.adobe.watson.vo.BugServices] WX Edit Bug:3494430サーバー:yukon.corp.adobe.com User:xinche appGUID:null INFO [com.adobe.watson.vo.BugServices] WX Edit Bug:3494430 Server :yukon.corp.adobe.comユーザー:xincheappGUID:null INFO [com.adobe.watson.vo.BugServices] WX編集バグ:3419432サーバー:yukon.corp.adobe.comユーザー:プレリリースappGUID:fcdd2153-bbdf INFO [ com.adobe.watson.vo.BugServices] WX編集バグ:3419432サーバー:yukon.corp.adobe.comユーザー:プレリリースappGUID:fcdd2153-bbdf情報[com.adobe.watson.vo.BugServices] WX編集バグ:3494430サーバー:yukon.corp.adobe.comユーザー:xincheappGUID:wx INFO [com.adobe.watson.vo.BugServices] WX編集バグ:3494430サーバー:yukon.corp.adobe.comユーザー:xincheappGUID:wxINFO[com。 adobe.watson.vo.BugServices] WX Edit Bug:3494430サーバー:yukon.corp.adobe.comユーザー:xincheappGUID:null INFO [com.adobe.watson.vo.BugServices] WX Edit Bug:3494430サーバー:yukon.corp.adobe.com User:xinche appGUID:null INFO [com.adobe.watson.vo.BugServices] WX Edit Bug:3419432サーバー:yukon.corp.adobe.comユーザー:プレリリースappGUID:fcdd2153-bbdf情報[com.adobe.watson.vo.BugServices] WX編集バグ:3419432サーバー:yukon.corp.adobe.comユーザー:プレリリースappGUID:fcdd2153- bbdf

私のコードはここにあります:

IEnumerable<string> textLines
                          = Directory.GetFiles(@"C:\Users\karansha\Desktop\Dummy\", "*.*")
                            .Select(filePath => File.ReadLines(filePath))
                            .SelectMany(line => line);
            string x = string.Join(",", textLines);
            Regex regex = new Regex(@"(.*)?(wx|null)\b");
            var newString = regex.Replace(x, String.Empty);
            string discard = string.Join(",", newString);
            List<string> users = new List<string>();
            Regex regex1 = new Regex(@"WX Edit Bug:\s*(?<value>.*?)\s+Server");
            MatchCollection matches1 = regex1.Matches(discard);
            foreach (Match match in matches1)
            {
                var Editbug = match.Groups["value"].Value;
                if (!users.Contains(Editbug)) users.Add(Editbug);
            }
            int WX_Edit = users.Count;
4

1 に答える 1

1

Where提供したコードを使用し、クエリの最初の部分が機能すると仮定して、句を使用してみることができます(テストされていません)

IEnumerable<string> textLines
    = Directory.GetFiles(@"C:\Users\karansha\Desktop\Dummy\", "*.*")
               .Select(filePath => File.ReadLines(filePath))
               .SelectMany(line => line)
               .Where(line => line.Contains("appGUID: null") || line.Contains("appGUID: wx"))
               .ToList();
于 2013-03-07T15:26:32.877 に答える