Oracle SQL REGEXP_LIKE未返回预期结果

时间:2016-04-29 13:53:02

标签: sql oracle regexp-like

你知道为什么Oracle 11g R2 Express Edition(XE)上的这个SQL命令没有返回预期的结果吗?

SELECT 'X'
FROM dual
WHERE REGEXP_LIKE('Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)', '^.*MSIE [5-8](?:\.[0-9]+)?(?!.*Trident\/(?:[5-9]|1[0-9])\.0).*$');

当我使用网站https://regex101.com/时,模式匹配......

1 个答案:

答案 0 :(得分:0)

我想知道regexe101如何匹配,因为你在寻找带有模式的“... Trident / 4.0 ......”,它只需要斜杠之后的5到9之间的数字(绝对不包含4,所以regex101不应该匹配!)。

无论如何,在纠正这个并删除那些?:和?!修饰符,11gR2(甚至12c)显然无法正确处理,它可以工作:

{{1}}