我试图通过下面的正则表达式在PL / SQL语句中提到所有表名。它有一定的作用,并给我表名。但在下面的场景中的问题。
(?<=from|join)\s+(\w+)(,\s*(\w+))?(?:(\s*\w+,\s*(\w+))+)?
SELECT DISTINCT *
FROM table1 t1, table2 t2, table3 t3,table4 t4
WHERE t3.signature_id IS NULL
它只给我table1和table4其他人没有得到正则表达式。我认为(,\s*(\w+))
中的问题不能递归地查找和匹配那些表语句。我的问题是如何获取table1,table2,table3和table4的所有名称?