本帖最后由 shencb 于 2012-01-09 14:15:07 编辑

解决方案 »

  1.   

    Regex r=new Regex(@"(?s)SELECT\s+ (?<select>.*?)FROM\s+(?<from>.*?)WHERE(?<where>.*");Match m=r.Match(source);
    string select=m.Groups["select"].Value;
    ......
      

  2.   

    试试:
    (?is)(?<=select).*(?=from)|(?<=from).*(?=where)|(?<=where).*
      

  3.   

    在RegTester上测试,报错。
    错误是“Not Enough.”
      

  4.   

    奇怪的错误这个呢(?s)SELECT\s+ (?<select>.*?)FROM\s+(?<from>.*?)WHERE(?<where>.*)$
      

  5.   


            string str = @"SELECT     OrderTable.HJSL, Company.CompanyName
    FROM            OrderTable INNER JOIN
                             Company ON OrderTable.CompanyID = Company.CompanyID
    WHERE        (OrderTable.CompanyID > 1000)";            Regex re = new Regex("SELECT\\s+(.*?)FROM\\s+(.*?)WHERE\\s+(.*?)", RegexOptions.None);
                MatchCollection mc = re.Matches(str.Replace("\r\n",""));
                foreach (Match ma in mc)
                {
                   Console.WriteLine(ma.Groups[1].Value);
                   Console.WriteLine(ma.Groups[2].Value);
                   Console.WriteLine(ma.Groups[3].Value);
                }            Console.ReadLine();