您的位置:首页 > 数据库

使用正则表达式获取Sql查询语句各项(表名、字段、条件、排序)

2016-03-27 14:58 1311 查看
    string text = "select * from [admin] where aa=1 and cc='b' order by aa desc ";
    
Regex reg = null;
reg = new Regex(@"\s+from\s+.*?(\s+where\s+|\s+order\s+|\s+group\s+)|\s+from\s+.+", RegexOptions.IgnoreCase);

string table = reg.Match(text).Value;
table = Regex.Replace(table.ToLower(), @"\s+from\s+|\s+where\s+|\[|\]|\s+order\s+|\s+group\s+", "");

reg = new Regex(@"select\s+.*?\s+from\s+", RegexOptions.IgnoreCase);
string field = reg.Match(text).Value;

field = Regex.Replace(field.ToLower(), @"select\s+|\s+from\s+|\[|\]", "");
reg = new Regex(@"\s+where\s+.*?(\s+order\s+|\s+group\s+)|\s+where\s+.+", RegexOptions.IgnoreCase);
string condition = reg.Match(text).Value;
condition = Regex.Replace(condition.ToLower(), @"\s+where\s+|\s+order\s+|\s+group\s+|\[|\]", "");
reg = new Regex(@"\s+order\s+by\s+.*?\s(desc|asc)|\s+order\s+by\s+.*?\s", RegexOptions.IgnoreCase);
string order = reg.Match(text).Value;
order = Regex.Replace(order.ToLower(),@"\s+order\s+by\s+|\[|\]", "");


  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: