我有一个sql查询字符串来创建或替换看起来像这样的Oracle DB的触发器......
CREATE OR REPLACE TRIGGER schema.trigger_name
BEFORE DELETE ON schema.table_c
FOR EACH ROW
BEGIN
INSERT INTO table_h (col_1,
col_2,
col_3,
col_4)
VALUES (val_1,
val_2,
val_3,
val_4)
END
我试图删除所有SQL关键字,以便我留下一张类似于......的地图。
{trigger_name "schema.trigger_name",
on_table "schema.table_c",
hist_table "schema.table_h",
cols ["col_1", ... ],
values ["val_1", ... ]}
我现在正在尝试使用正则表达式删除所有关键字,然后我就可以相应地拆分剩余的字符串了。我的替换看起来像这样......
val r = s.replace(
"^(BEFORE DELETE ON" +
"|CREATE OR REPLACE TRIGGER" +
"|BEGIN" +
"|INSERT INTO" +
"|VALUES" +
"|END)", "")
其中s是我上面给出的字符串。当我运行它时,输出没有变化。我不是很擅长正则表达式(我很少使用它),所以听到我的绝对错误并不会让我感到震惊。我对Kotlin也很陌生,所以如果有一种更惯用的方法(我确信有),我会非常兴奋地学习!