Oracle Look背后是积极的

时间:2015-09-02 17:22:02

标签: sql regex oracle

Oracle Doc中没有关于表达式后面的示例,所以我尝试使用Java语法, 我的查询应该在TOP

之后得到任何数字
select regexp_substr('TIPTOP4152','(?<=TOP)\d+') sub from dual

但没有什么可以展示的!

2 个答案:

答案 0 :(得分:3)

我不确定Oracle是否支持lookbehind。相反,您应该可以使用regexp_replace

轻松完成此操作
REGEXP_REPLACE('TIPTOP4152', '.*TOP(\d+)', '\1')

答案 1 :(得分:0)

为了论证,REGEXP_SUBSTR也适用:

SQL> select regexp_substr('TIPTOP4152', 'TOP(\d+)', 1, 1, NULL, 1) nbr
    from dual;

NBR
----
4152

SQL>