SQLスクリプトからテーブル名を抽出しようとしています。私は次の文字列を持っています:
from db1.tableX tbx1 --quantity table
inner join tableY tbx2 on tbx1.xyz=tbx2.xyz
tabley
データベース名のプレフィックスが付いていないため、この文字列と一致させたくありません。私がこれを行おうとしている方法は、データベース名の前の文字列で「on」という単語を検出することです。
私の正規表現は一致tablex
していますが、一致しているので、式を一致させたくありませtbx1
ん。
このような状況でのみ一致させたい。
from db1.tableX tbx1 --quantity table
inner join db1.tableY tbx2 on tbx1.xyz = tbx2.xyz
私の正規表現は私tableX
に与えるべきでありtableY
、データベース名が接頭辞として付けられているためです。
これが私の表現です:
(insert\s+into|from|inner\s+join|left\s+outer\s+join|join)\s+[\sa-zA-Z0-9_$#-]*\.\s*(?<table>[a-zA-Z0-9_]+)(?=\s+[a-zA-Z0-9_$#-]+)*