我有很多文件将oracle sql语句分隔为;
我想从那些sql select
中获取table_name本质上sql statment在文件中有3种类型
Select * from table1;
select * from ( select * from table9 x inner join table10 y on x.col1=y.col1);
select * from table2,table3 where table2.col1=table3.col1
第一个对我来说很容易,因为我知道一些正则表达式。如何获取其他语句的表名
我更喜欢结果
Table1
table9
table10
table2
table3
提前致谢
答案 0 :(得分:0)
在或加入之后找到一个单词,并在逗号后选择另一个单词。
>>> for m in re.findall(r'(from|join)\s+(\w+)(,\s*(\w+))?', s):
... print(m[1])
... if m[3]:
... print(m[3])
...
table1
table9
table10
table2
table3