|
大侠,根据你的庖丁解牛思路,针对获取SQL语句中涉及到的 表 以及连接关系(即表TableA,TableB,TableC 以及语句中可能出现的LEFT,RIGHT,INNER,CROSS连接关键字),这两个分别写出了正则,但是不知道怎么把它们汇总在一起,你帮我看下吧,谢谢
要查的字符串:
SELECT * FROM TableA;
SELECT a.ID, b .Name FROM TableA a, TableB b WHERE a.ID = b.ID;
SELECT a.ID, b.Name FROM TableA a LEFT JOIN TableB b ON a.ID = b.ID;
SELECT * FROM TableA a INNER JOIN TableB b ON a.ID = b.ID WHERE a.ID > 1000;
SELECT * FROM TableA a LEFT JOIN TableB b ON a.ID = b.ID LEFT JOIN TableC c ON c.Name = b.Name;
我写的正则:
1. 获取表名称
\s*(?<=from|join|from\b.*,)\s+(\w+)
2.获取连接关键字(即join前面的单词)
(\w+(?=\s+\bjoin\b\s+)) |
|