ここで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 サーバーに渡します。