给出以下文本:
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)、表(商店、产品和用户)和目标表列(如果 FK3 中适用的 id)。
如果我使用以下正则表达式:
FOREIGN\s+KEY\s+?\(([^(]+)\)\s+?REFERENCES\s+(\"[^\"]+\")
它正确匹配前两个选项。
如果我使用这个正则表达式:
FOREIGN\s+KEY\s+?\(([^(]+)\)\s+?REFERENCES\s+([^(]+)\(([^)]+)
它正确匹配 FK3,但不匹配 FK1 或 FK2。我希望我可以将它与alteration
. 我尝试了以下方法:
FOREIGN\s+KEY\s+?\(([^(]+)\)\s+?REFERENCES\s+((\"[^\"]+\")|[^(]+)\(([^)]+)
假设因为我将状态 1 放在第一位,这将为前两个选项提供有效匹配,但是它作为第二个正则表达式执行。
关于如何正确执行此操作的任何建议?有没有办法设置交替的优先级?