LINQ结合正则表达式查询文件系统

string startFolder = @"D:\Program Files (x86)\Microsoft Visual Studio 12.0\";
            IEnumerable<FileInfo> fileList = GetFiles(startFolder);

            Regex searchTerm = new Regex(@"Visual (Basic|C#|Studio)");

            var queryMatchingFiles = from file in fileList
                                     where file.Extension == ".htm"
                                     let fileText = File.ReadAllText(file.FullName)
                                     let matches = searchTerm.Matches(fileText)
                                     where matches.Count > 0
                                     select new
                                     {
                                         name = file.FullName,
                                         mat = from Match match in matches
                                               select match.Value
                                     };

            foreach (var item in queryMatchingFiles)
            {
                Console.WriteLine(item.name);
                foreach (var item1 in item.mat)
                {
                    Console.WriteLine(item1);
                }
            }

            Console.WriteLine();
            Console.WriteLine("Press Any Key to Exit...");
            Console.ReadKey();

 

posted on 2016-03-21 16:20  雯大侠  阅读(551)  评论(0编辑  收藏  举报

导航