请高手帮我研究一下下面的正则规则 谢谢========================================================================
 string text = @"E:\Music\...\我的音乐\卓依婷 - 我的眼泪不为你说谎.mp3";
 //下面这个是正则是错的
 string pattern = @"(?<Artist>\S+) - (?<Title>\S+)";
 Match match = Regex.Match(text, pattern);
 var Artist=  match.Groups["Artist"].Value;
 var Title = match.Groups["Title"].Value;
 //结果要求 Artist="卓依婷";Title="我的眼泪不为你说谎";
 ========================================================================
 string text = @"E:\Music\...\我的音乐\卓依婷\我的眼泪不为你说谎.mp3";
 //下面这个是正则是错的
 string pattern = @"(?<Artist>\S+) - (?<Title>\S+)";
 Match match = Regex.Match(text, pattern);
 var Artist=  match.Groups["Artist"].Value;
 var Title = match.Groups["Title"].Value;
 //结果要求 Artist="卓依婷";Title="我的眼泪不为你说谎";
 ========================================================================
 string text = @"E:\Music\...\卓依婷\卓依婷 2006\我的眼泪不为你说谎.mp3";
 //下面这个是正则是错的
 string pattern = @"(?<Artist>\S+) - (?<Title>\S+)";
 Match match = Regex.Match(text, pattern);
 var Artist=  match.Groups["Artist"].Value;
 var Title = match.Groups["Title"].Value;
 var Album = match.Groups["Album"].Value;
 //结果要求 Artist="卓依婷";Title="我的眼泪不为你说谎" Album="卓依婷 2006";
 ========================================================================
 string text = @"E:\Music\...\Pop\卓依婷\卓依婷2006\我的眼泪不为你说谎.mp3";
 //下面这个是正则是错的
 string pattern = @"(?<Artist>\S+) - (?<Title>\S+)";
 Match match = Regex.Match(text, pattern);
 var Artist=  match.Groups["Artist"].Value;
 var Title = match.Groups["Title"].Value;
 var Album = match.Groups["Album"].Value;
 var Genre = match.Groups["Genre"].Value;
 //结果要求 Artist="卓依婷";Title="我的眼泪不为你说谎";Album="卓依婷2006";Genre="Pop";

解决方案 »

  1.   

    string pattern = string.Empty;
                Match match = null;
                string Artist = string.Empty;
                string Title = string.Empty;
                string Album = string.Empty;
                string Genre = string.Empty;
                string text = @"E:\Music\...\我的音乐\卓依婷 - 我的眼泪不为你说谎.mp3";
                pattern = @"(?<=\\)(?<Artist>[^\\]+?) - (?<Title>[^\.]+?)(?=\.)";
                match = Regex.Match(text, pattern);
                Artist = match.Groups["Artist"].Value;//卓依婷
                Title = match.Groups["Title"].Value;//我的眼泪不为你说谎
                //========================================================================
                text = @"E:\Music\...\我的音乐\卓依婷\我的眼泪不为你说谎.mp3";
                pattern = @"(?<=\\)(?<Artist>[^\\]+?)\\(?<Title>[^\.\\]+?)(?=\.)";
                match = Regex.Match(text, pattern);
                Artist = match.Groups["Artist"].Value;//卓依婷
                Title = match.Groups["Title"].Value;//我的眼泪不为你说谎
                //========================================================================
                text = @"E:\Music\...\卓依婷\卓依婷 2006\我的眼泪不为你说谎.mp3";
                pattern = @"(?<=\\)(?<Artist>[^\\]+?)\\(?<Album>[^\\]+?)\\(?<Title>[^\.\\]+?)(?=\.)";
                match = Regex.Match(text, pattern);
                Artist = match.Groups["Artist"].Value;//卓依婷
                Title = match.Groups["Title"].Value;//我的眼泪不为你说谎
                Album = match.Groups["Album"].Value;//卓依婷 2006
                //========================================================================
                text = @"E:\Music\...\Pop\卓依婷\卓依婷2006\我的眼泪不为你说谎.mp3";
                pattern = @"(?<=\\)(?<Genre>[^\\]+?)\\(?<Artist>[^\\]+?)\\(?<Album>[^\\]+?)\\(?<Title>[^\.\\]+?)(?=\.)";
                match = Regex.Match(text, pattern);
                Artist = match.Groups["Artist"].Value;//卓依婷
                Title = match.Groups["Title"].Value;//我的眼泪不为你说谎
                Album = match.Groups["Album"].Value;//卓依婷2006
                Genre = match.Groups["Genre"].Value;//Pop