我正在尝试获取SQL select语句的表和别名,例如以下select:
select * from table1 t1, table2, table3 t3, table4 where column = 1
应该返回两个捕获组,第一个是table1
,table2
,table3
和table4
。第二个捕获组t1
,null,t3
和null。
我的尝试只返回每个捕获组的第一项:
from\s+([^ ,]+)\s*(\w+)*,
仅返回table1
和t1
。如何扩展正则表达式以检索所有出现的事件?
答案 0 :(得分:1)
假设 str
是您的字符串
var tables = str.match(/from\s(.*)\swhere/)[1].split(/, /);
返回:
["table1 t1", "table2", "table3 t3", "table4"]