首页 > 解决方案 > 需要使用 REGEXP_SUBSTR 提取文本 - 找不到正确的组合

问题描述

这是我的文本示例-我正在尝试将 TEXTPART3 作为答案:

文本部分 1:文本部分 2:文本部分 3 - 文本部分 4

我使用了 TRIM(LEADING ':' FROM REGEXP_SUBSTR('textstatementhere', ':.+?-')) - 但它没有考虑到我得到的文本语句中的两个“:”和“-” ' TEXTPART2:文本部分3 -'

任何人都可以帮忙吗?

提前致谢!

标签: oraclenetsuite

解决方案


该问题有一个仅使用标准字符串函数的更有效的解决方案:

with
  sample_input (str) as (
    select 'TEXTPART1 : TEXTPART2: TEXTPART3 - TEXTPART4' from dual
  )
select substr(str, pos, instr(str, '-', pos) - pos - 1) as text_part_3
from   (select str, instr(str, ':', 1, 2) + 2 as pos from sample_input)
;


TEXT_PART_3
-----------
TEXTPART3

推荐阅读