Oracle RegExp_SubStr Text在字符和字符串之间

时间:2018-01-18 13:00:00

标签: oracle12c regexp-substr

需要帮助显示字符'$'和字符串'Request'

之间的文本

如果我们有这个字符串

blah blah blah $ 60 blahblah blah请求

我想打印出来

60美元blahblah blah

我试过

 select   '$' || REGEXP_SUBSTR(notes,'([^\$]).*?(?=Request)')

这什么都不返回。抱歉正则表达不是我的强项

1 个答案:

答案 0 :(得分:1)

Oracle不支持预测。

只需匹配您想要的字符串并将要提取的部分包装在捕获组中并返回:

SQL Fiddle

Oracle 11g R2架构设置

CREATE TABLE table_name ( notes ) AS
SELECT 'blah blah blah $60 blahblah blah Request' FROM DUAL;

查询1

SELECT REGEXP_SUBSTR(
         notes,             -- input
         '(\$.*?)Request',  -- pattern
         1,                 -- start at 1st character
         1,                 -- find 1st occurrence
         NULL,              -- flags
         1                  -- capture group to return
       ) AS request
FROM   table_name

<强> Results

|            REQUEST |
|--------------------|
| $60 blahblah blah  |