次のテキストをギビンします。
constraint FK1 foreign key (Store_id) references "Store",
constraint FK2 foreign key (Product_id) references "Product"),
CONSTRAINT PK1 PRIMARY KEY (id),
CONSTRAINT FK3 FOREIGN KEY (id_user) REFERENCES user(id)
ローカル列(Store_id、Product_id、id_user)、テーブル(Store、Product、User)とターゲットテーブル列(該当する場合はFK3のid)を提供する正規表現を見つけようとしています。
次の正規表現を使用する場合:
FOREIGN\s+KEY\s+?\(([^(]+)\)\s+?REFERENCES\s+(\"[^\"]+\")
最初の2つのオプションと適切に一致します。
この正規表現を使用する場合:
FOREIGN\s+KEY\s+?\(([^(]+)\)\s+?REFERENCES\s+([^(]+)\(([^)]+)
FK3と適切に一致しますが、FK1またはFK2とは一致しません。これをと組み合わせることができると思っていましたalteration
。私は次のことを試しました:
FOREIGN\s+KEY\s+?\(([^(]+)\)\s+?REFERENCES\s+((\"[^\"]+\")|[^(]+)\(([^)]+)
状態1を最初に配置したため、最初の2つのオプションに有効な一致が提供されると仮定しますが、代わりに2番目の正規表現として機能します。
これを適切に行う方法について何か提案はありますか?交代に優先順位を設定する方法はありますか?