本帖最后由 niss 于 2012-10-24 09:29:19 编辑

解决方案 »

  1.   


                StreamReader reader = new StreamReader("c:\\temp\\1.txt",Encoding.Default);
                string source = reader.ReadToEnd();
                Regex reg = new Regex(@"(?is)([\S]+)[\s]+([^(]+)\(([\S]+)\)[^,]+,");
                MatchCollection mc = reg.Matches(source);
                foreach (Match m in mc)
                {
                    MessageBox.Show(m.Groups[1].Value+":"+m.Groups[2].Value+":"+m.Groups[3].Value);
                }
      

  2.   

    注意:“@”是C#中的语法格式,不是正则式中的关键字。
    “@”的说明:
    在C#的字符串中可以支持“\”为转换字符,比如字符串中的"\\", "\t", "\r\n"等都有特定的意思。
    为了让转换字符在字符中失效,就可以使用“@”。
    比如:@"\\", @"\t", @"\r\n"。简单说:
    "\\"是一个斜杠,而@"\\"则是两个斜杠
    "\t"是一个TAB字符,而@"\t"就是斜杠t字符串
    "\r\n"是回车换行,而@"\r\n"就是斜杠r斜杠n字符串
      

  3.   


    我是想问"(?is)"是什么含义,按道理?表示前面的匹配0到1次,可前面的(明显是特殊字符....我不懂(?is)是什么意思