用正则表达式匹配时,如何屏蔽掉过程中注释掉的部分
我需要在一串很长的字符串中匹配某固定字符串,但是希望将原字符串中/*与*/之间的内容屏蔽掉,不参与匹配,由于/*与*/之间的内容可能不在一行,且过程中会存在多对,希望仅将/*与*/之间的内容屏蔽,其余部分保留,以原字符串如下为例:
SQL code?CREATE OR REPLACE PROCEDURE P_DM_C_D_CNT_BB_WLAN_BASE_TEXT(V_DATE IN VARCHAR2, V_PROV IN VARCHAR2, V_RETCODE OUT VARCHAR2, V_RETINFO OUT VARCHAR2) AS /*@ **************************************************************** *参数 --%@PARAM: V_DATE 'YYYYMMDD' *参数 --%@PARAM:V_RETCODE 过程运行结束成功与否标志 *参数 --%@PARAM:V_RETINFO 过程运行结束成功与否描述 *备注 --%@REMARK: *修改记录 --%@MODIFY: *修改记录 --%@MODIFY: ****************************************************************** @*/ V_ROWLINE NUMBER := 0; V_STARTTIME DATE; V_LOG_SN NUMBER; BEGIN V_STARTTIME := SYSDATE; /* ZB_DIM.DIM_BI_AREA; ZB_DIM.DIM_PROV */ /* ZB_DIM.DIM_BI_PAY_MODE */ ZB_DIM.DIM_BI_ACTIVITY_TYPE; SELECT ZBA_DWD.SEQ_DWD_SQLPARSER.NEXTVAL INTO V_LOG_SN; --运行日志序号 V_PROCNAME := 'P_DM_C_D_CNT_BB_WLAN_BASE_TEXT';
其中红色字段部分均希望在匹配的时候给屏蔽掉,请大神帮忙。。。谢谢。。
regexp_replace(replace(字符串,chr(10),' '), '/\*.*\*/','',1,0,'m') from table;
先替换空格,再匹配注释,可以不