0

ここでSQLの問題に関する正規表現があります。次の形式の SQL ユニオン クエリの場合:

Select a From (subquery1) union (subquery2)

これは From 句内のものと一致する単純な正規表現ですが、次の正規表現がありました。

\((?<subquery1>.*)\) union \((?<subquery2>.*)\)

しかし、後で再帰的になる可能性があることを発見しました.2つのサブクエリには、ユニオンケースも含まれる可能性があります。次に例を示します。

(
(select a from b) union (select x from b)
) union (
(select a from b) union (select x from b)
)

そして、これは私の正規表現キャプチャを完全に台無しにします.subquery1は、貪欲でない場合は2番目のユニオンではなく最初のユニオンをキャプチャし、貪欲な場合は3番目のユニオンまですべてをキャプチャします. 貪欲でない ? も追加してみました。両方のキャプチャ句への演算子ですが、運はありません。

悟りが必要です、どうもありがとう

PS: MS SQL サーバー 2012 の上にカスタム データベースを配置しました。標準の SQL 選択クエリを解析する必要があり、テーブル名にいくつかの変更を加えました。数列への数値演算。したがって、変更された標準の SQL クエリを生成し、それを SQL サーバーに渡します。

4

0 に答える 0