【发布时间】:2017-04-06 18:45:03
【问题描述】:
我正在尝试为 java 找到一个正则表达式,它匹配所有 select 语句查询,这些查询不是由插入、更新、删除、过程等关键字开头的:
此时此刻:
^(?!insert|delete|update|procedure) {0,}select.*?;$ gims
但如果选择从新行开始,则不匹配:
测试用例:
select 1 from dual;
delete from table where id =
(
select 1 from dual
);
update table set id = 1 where id in (
select 1 from dual);
procedure dsdsd select fdsfds;
PROCEDURE myproc ()
IS
BEGIN
SELECT
1 from dual;
END myproc ;
结果:仅匹配 select 1 from dual;
此链接有测试用例:
【问题讨论】:
-
对不起,我不明白你的意思(不同的选择语句)。你能举一些例子吗?
-
你期待什么输出?
-
只匹配选择1 from dual;