正则表达式可选匹配 - 使用可选的ORDER BY拆分简单的选择SQL

时间:2018-01-18 18:06:00

标签: sql regex

正则表达式新手问题 - 我尝试使用正则表达式分割一个简单的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子句是可选的,但是从查询中删除它会阻止匹配。我该如何解决?

非常感谢任何帮助。

提前致谢!

0 个答案:

没有答案