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

Posted 巴别塔

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用正则表达式获取Sql查询语句各项(表名字段条件排序)相关的知识,希望对你有一定的参考价值。

     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+|\[|\]", "");

  

以上是关于使用正则表达式获取Sql查询语句各项(表名字段条件排序)的主要内容,如果未能解决你的问题,请参考以下文章

我要用sql语句查询出MySql的各项监控指标...

常用的SQL语句

SQL语句查询IP段

sql语句中“where1=1”是啥意思?

SQL中常用模糊查询的四种匹配模式&&正则表达式

1、sql查询语句时怎么把几个字段拼接成一个字段?这几个字段是整型的。