Oracle
oracle在最後一個豎線之後找到第一個連字元
oracle 使用 REGEXP_REPLACE 在最後一個豎線之後找到第一個連字元
SELECT REGEXP_REPLACE ('sadsa|dd|g - g|hh|yyyyy - tttt - ooo', '.*(\|)(?!.*\|).*?\-{1}', '' ) FROM dual;
字元串輸入
'sadsa|dd|g - g|hh|yyyyy - tttt - ooo'
預期產出
'sadsa|dd|g - g|hh|yyyyy -'
此正則表達式適用於記事本++,但不適用於 oracle
.*(\|)(?!.*\|).*?\-{1}
create table t ( c varchar2(64) ); insert into t values ('sadsa|dd|g - g|hh|yyyyy - tttt - ooo'); insert into t values ('sadsa|dd|g - g|hh|yyyyy - tttt | - ooo'); insert into t values ('sad -sa|dd|g - g|hh|yy yyy tttt ooo'); select regexp_replace(c,'(.*)\|([^|-]*)-[^|]*','\1|\2-') from t;
給
sadsa|dd|g - g|hh|yyyyy - sadsa|dd|g - g|hh|yyyyy - tttt | - sad -sa|dd|g -|hh|yy yyy tttt ooo
看