从字符串ES-123456-PSA Spain-101
中,我只需要提取ES-123456-101
分隔符位置是固定的。
尝试REGEXP_SUBSTR('ES-123456-PSA Spain-101','[^-]+',2,3 )
,从而获得了PSA西班牙。
有没有办法忽略这些特定字符并返回其余字符。
答案 0 :(得分:1)
如果您想要ES-123456-101
,请使用此:
SELECT REGEXP_REPLACE('ES-123456-PSA Spain-101', '[^-]+-', '', 1, 3 )
FROM dual;
如果您想要ES-12345-101
,那么可以解释12345
而不是123456
的逻辑吗?错字还是省略最后一个字符?
答案 1 :(得分:1)
您还可以使用subtr
和instr
with t as
(
select 'ES-123456-PSA Spain-101' as text from dual
)
select substr(text,1,instr(text,'-',1,2)) -- ES-123456-
||substr(text,instr(text,'-',1,3)+1) -- 101
from t