Javascript正则表达式中每个捕获组的多次出现

时间:2015-05-13 02:02:55

标签: javascript regex

我正在尝试获取SQL select语句的表和别名,例如以下select:

select * from table1 t1, table2, table3 t3, table4 where column = 1

应该返回两个捕获组,第一个是table1table2table3table4。第二个捕获组t1,null,t3和null。

我的尝试只返回每个捕获组的第一项:

from\s+([^ ,]+)\s*(\w+)*,

仅返回table1t1。如何扩展正则表达式以检索所有出现的事件?

1 个答案:

答案 0 :(得分:1)

假设 str是您的字符串

var tables = str.match(/from\s(.*)\swhere/)[1].split(/, /);

返回:

["table1 t1", "table2", "table3 t3", "table4"]