正则表达式 判断检测sql语句

publicstaticRegexrxColumns=newRegex(@"\A\s*SELECT\s+((?:\((?>\((?<depth>)|\)(?<-depth... public static Regex rxColumns = new Regex(@"\A\s*SELECT\s+((?:\((?>\((?<depth>)|\)(?<-depth>)|.?)*(?(depth)(?!))\)|.)*?)(?<!,\s+)\bFROM\b", RegexOptions.IgnoreCase | RegexOptions.Multiline | RegexOptions.Singleline | RegexOptions.Compiled);
这个上面的限制了 sql的查询语句 如果用 with temp as() 这种方式查询就匹配不了 在调用这个方法的时候返回false 怎么修改下 让它能也可以匹配 with as 的查询语句
展开
 我来答
yugi111
2015-12-10 · TA获得超过8.1万个赞
知道大有可为答主
回答量:5.1万
采纳率:70%
帮助的人:1.3亿
展开全部
public static Regex rxColumns = new Regex(@"\A(with\s+(?:(?!\bas\b).)+\s+as)?\s*SELECT\s+((?:\((?>\((?<depth>)|\)(?<-depth>)|.?)*(?(depth)(?!))\)|.)*?)(?<!,\s+)\bFROM\b", RegexOptions.IgnoreCase | RegexOptions.Multiline | RegexOptions.Singleline | RegexOptions.Compiled);
追问
我用 
var m = rxColumns.Match(sql);
if (!m.Success)
return false;
调用 上面的方法 怎么返回的还是false
sql值:
with tep as (
SQL语句 ) select * from tep order BY AddDateTime DESC
请问需要在怎么修改一下?
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式