在Oracle Doc中没有关于表达式后面的示例,所以我尝试使用Java语法,
我的查询应该在TOP
select regexp_substr('TIPTOP4152','(?<=TOP)\d+') sub from dual
但没有什么可以展示的!
答案 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>