正则表达式 解析SQL 语法字符串字符串样例select * from mtabselect * from mtab where id=10select * (select * from mmtab where id=10) where id=10
//取得 (select * from mmtab where id=10)select * (select * from mmtab where (id=10 and zz=5)) where id=10
//取得 (select * from mmtab where (id=10 and zz=5))select * (select * from mmtab where (id=10 and zz=5)) where (id=10 zz=5)
//取得 (select * from mmtab where (id=10 and zz=5))select * (select * from mmtab where (id=10 and zz=5)) where (id=10 zz=5) order by id desc
//取得 (select * from mmtab where (id=10 and zz=5)) 所有后边也可能没有where子句先谢谢大家了
如
select * (select * from mmtab where (id=10 and zz=5)) where (id=10 zz=5) order by id desc
//取得 (select * from mmtab where (id=10 and zz=5))
可以看一下 TrimQuery http://code.google.com/p/trimpath/wiki/TrimQuery
alert(str.match(/\(([^\(]*(\([^\)]*\))*)\)/)[1]);
alert(str.match(/\([^\)]+\)+/g)[0]);
var arr=["select * from mtab",
"select * from mtab where id=10",
"select * (select * from mmtab where id=10) where id=10",
//取得 (select * from mmtab where id=10)
"select * (select * from mmtab where (id=10 and zz=5)) where id=10",
//取得 (select * from mmtab where (id=10 and zz=5))
"select * (select * from mmtab where (id=10 and zz=5)) where (id=10 zz=5)",
//取得 (select * from mmtab where (id=10 and zz=5))
"select * (select * from mmtab where (id=10 and zz=5)) where (id=10 zz=5) order by id desc"]
//取得 (select * from mmtab where (id=10 and zz=5)) var reg=/(^select.*?)(\(?select.*\)?)(where.*?$)/ig;
for(var i=0;i<arr.length;i++)
document.write(arr[i].replace(reg,"$2")+"<br>");</script>
var arr=["select * from mtab",
"select * from mtab where id=10",
"select * (select * from mmtab where id=10) where id=10",
//取得 (select * from mmtab where id=10)
"select * (select * from mmtab where (id=10 and zz=5)) where id=10",
//取得 (select * from mmtab where (id=10 and zz=5))
"select * (select * from mmtab where (id=10 and zz=5)) where (id=10 zz=5)",
//取得 (select * from mmtab where (id=10 and zz=5))
"select * (select * from mmtab where (id=10 and zz=5)) where (id=10 zz=5) order by id desc"]
//取得 (select * from mmtab where (id=10 and zz=5)) var reg=/\([^\)]+\)+/g;
for(var i=0;i<arr.length;i++)
! arr[i].match(reg) || document.write(arr[i].match(reg)[0]+"<br>");
</script>