oracle - 需要使用 REGEXP_SUBSTR 提取文本 - 找不到正确的组合
问题描述
这是我的文本示例-我正在尝试将 TEXTPART3 作为答案:
文本部分 1:文本部分 2:文本部分 3 - 文本部分 4
我使用了 TRIM(LEADING ':' FROM REGEXP_SUBSTR('textstatementhere', ':.+?-')) - 但它没有考虑到我得到的文本语句中的两个“:”和“-” ' TEXTPART2:文本部分3 -'
任何人都可以帮忙吗?
提前致谢!
解决方案
该问题有一个仅使用标准字符串函数的更有效的解决方案:
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
推荐阅读
- python - 在 pandas 中使用列名加入
- jquery - 防止机器人向公共 Web 服务发送垃圾邮件
- amazon-web-services - 需要添加一个变量来代替分支名称
- ios - 双击可以工作,但双击不能通过 iOS 中的 UITapGestureRecognizer 工作
- python - lambda函数中的元组含义
- java - 返回在数组中只出现一次的元素
- sql - 尝试每月计算 2000 ,但收到错误“ORA-00904: "MONTH": invalid identifier"
- python - 在电报机器人库中获取用户 ID
- typescript - 界面中的new关键字是什么意思
- ruby-on-rails - Rails 嵌套路由 id 不属于父关联 id