This question already has answers here:
How to capture an arbitrary number of groups in JavaScript Regexp?
                                
                                    (4个答案)
                                
                        
                                4年前关闭。
            
                    
我正在尝试获取SQL select语句的表和别名,例如以下select:

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


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

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

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


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

最佳答案

假设str是您的字符串

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


返回值:

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

关于javascript - Javascript正则表达式中每个捕获组的多次出现,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30204395/

10-10 13:01