2014-03-27 41 views
0

我想從一個字符串中刪除前綴或後綴去掉前綴或後綴,串看起來象下面這樣:
L-CHGSUP-CDO-BR-NET|MS COORDINATOR X|MS COORDINATOR Z|
|L-CHGSUP-CDO-BR-NET|MS COORDINATOR X|MS COORDINATOR Z|||
我想刪除分隔符|最終還是在最後的字符串和開始,該字符串應該是這樣的:
L-CHGSUP-CDO-BR-NET|MS COORDINATOR X|MS COORDINATOR Z要求一個reqular表達式從一個字符串中的Oracle

那麼,如何寫一個正則表達式中PLSQL做到這一點?

+1

[ TRIM(http://www.oracle.com/pls/db112/to_URL?remark=ranked&urlname=http:%2F%2Fdocs.oracle.com%2Fcd%2FE11882_01%2Fserver.112%2Fe41084%2Ffunctions219.htm%23SQLRF06149) – Noel

回答

1

這個正則表達式做這項工作:

select regexp_replace('|L-CHGSUP-CDO-BR-NET|MS COORDINATOR X|MS COORDINATOR Z|||','(^[\|]*)|[\|]*$') from dual 
1

由於EatÅPeach建議,你並不需要使用正則表達式這一點,內置TRIM function會做:

select trim('|' from '|L-CHGSUP-CDO-BR-NET|MS COORDINATOR X|MS COORDINATOR Z|||') 
from dual; 

TRIM('|'FROM'|L-CHGSUP-CDO-BR-NET|MSCOORDINATORX|MSCOORDINATORZ|||') 
-------------------------------------------------------------------- 
L-CHGSUP-CDO-BR-NET|MS COORDINATOR X|MS COORDINATOR Z 

或者如果您已經具有該值並希望在PL/SQL內部修剪它(作爲一個人爲的示例):

set serveroutput on 
declare 
    old_value varchar2(80); 
    new_value varchar2(80); 
begin 
    old_value := '|L-CHGSUP-CDO-BR-NET|MS COORDINATOR X|MS COORDINATOR Z|||'; 
    new_value := trim('|' from old_value); 
    dbms_output.put_line(new_value); 
end; 
/

anonymous block completed 
L-CHGSUP-CDO-BR-NET|MS COORDINATOR X|MS COORDINATOR Z 
相關問題