正则表达式新手问题 - 我尝试使用正则表达式分割一个简单的SQL SELECT
查询,但我坚持使用可选的ORDER BY
子句。
对于SQL查询SELECT A, B, C FROM DB.TABLE ORDER BY D, E, F;
,我有正则表达式
^SELECT\s+(?P<columns>.*)\s+FROM\s+(?P<table>.+?(?=ORDER BY))(?:ORDER BY)?(?P<order>.*);
,用于捕获ORDER BY
子句下的列名,表名和列。
我希望ORDER BY
子句是可选的,但是从查询中删除它会阻止匹配。我该如何解决?
非常感谢任何帮助。
提前致谢!