string sql="select * from table1   select * from table2  select * from table3 后面还N条SQL省略。";
我要从中截取出N条SQL 语句。放入字符串数组中。

解决方案 »

  1.   

    MatchCollection mc = Regex.Matches(sql,@"select.+?(?=\s*(?:select|$))");
    foreach(Match m in mc)
    {
        m.Value;//就是每条sql
    }
      

  2.   

    如果每条SQL语句都是封号结尾就简单多了,不然只能判断select关键字前面是否有括号“(”,要考虑的情况较多,需应付子查询的可能。
      

  3.   

            string sql="select * from table1 select * from table2 select * from table3 后面还N条SQL省略。";
            MatchCollection mc = Regex.Matches(sql, "select.*?(?=select|$)");
            string[] sqls = new string[mc.Count];
            for(int i=0;i<mc.Count;i++)
            {
                sqls[i] = mc[i].Value;
            }
      

  4.   

    stringBuilder strSql=new stringBuilder();
    strSql.Append("Select *from Table1");
    strSql.Append("Select *from Table2");
    strSql.Append("Select *from Table3");
      

  5.   

    string[] sqls = sql.Split(new string[] { "select" }, StringSplitOptions.RemoveEmptyEntries);
      

  6.   


    void Main()
    {
    string sql="select * from table1 select * from table2 select * from table3  ";
    var query= from s in sql.Split(new string[]{"select"},StringSplitOptions.RemoveEmptyEntries)
               select new {newsql="select"+s};
         query.ToList().ForEach(q=>Console.WriteLine(q.newsql));
     /*
     select * from table1 
     select * from table2 
     select * from table3  
     */
    }