我有像'AA_0331L_02317_R5_P
'这样的strig,我想用_字符分割后从第二部分中除去除'E'以外的所有字符,因此这里的0331N应该变成0331,如果它像{{1} },那么它应该变成0331E
。也就是说,如果我有像AA_0331N_02317_R5_P这样的字符串,那么我想成为0331E
,如果我有AA_0331_02317_R5_P
,那么它应该是{{1 }}。我喜欢如下所示,没有任何运气
AA_0331E_02317_R5_P
答案 0 :(得分:2)
您可以尝试执行以下操作-请记住,<video width="320" height="240" autoplay loop muted playsinline>
<source src="movie.mp4" type="video/mp4" />
</video>
将在没有实际替换的情况下返回原始字符串。在这里,我使用的是反向引用(如果Oracle正则表达式已经提前,我可以省略第二个捕获组和反向引用):
REGEXP_REPLACE()
答案 1 :(得分:0)
with s as (
select 'AA_0331L_02317_R5_P' str from dual union all
select 'AA_0331E_02317_R5_P' str from dual)
select str,
regexp_replace(regexp_substr(str, '[^_]+_[^_]+'), '[^E]$') || regexp_replace(str, '[^_]+_[^_]+', '', 1, 1) new_str
from s;
STR NEW_STR
------------------------------ ------------------------------
AA_0331L_02317_R5_P AA_0331_02317_R5_P
AA_0331E_02317_R5_P AA_0331E_02317_R5_P