我的字符串数据如下:
“你好世界。从ABCD-123前往ACDE-234'。
我需要的值“ABCD-123到ACDE-234”从上面的字符串中提取。我打算用REGEXP_SUBSTR,但我想,以检查是否有任何其他方式或提取这些数据。谢谢。
答案 0 :(得分:0)
一种选择是使用regexp_replace
,如下面的示例
with t(str) as
(
select 'Hello world. Travelling from ABCD-123 to ACDE-234' from dual
)
select
regexp_replace(str,'.*.\from(.*)','\1') as "Result String"
from t;
Result String
--------------------
ABCD-123 to ACDE-234
答案 1 :(得分:0)
以下查询将适用于所有3个字符串,但不确定性能,我找不到任何简单的方法:
select reverse(REGEXP_SUBSTR(reverse('Hello world. Travelling from ABCD-123 to ACDE-234'),'[^ ]+',1,3))||' '||
reverse(REGEXP_SUBSTR(reverse('Hello world. Travelling from ABCD-123 to ACDE-234'),'[^ ]+',1,2))||' '||
reverse(REGEXP_SUBSTR(reverse('Hello world. Travelling from ABCD-123 to ACDE-234'),'[^ ]+',1,1))
from dual;