我需要在一串很长的字符串中匹配某固定字符串,但是希望将原字符串中/*与*/之间的内容屏蔽掉,不参与匹配,由于/*与*/之间的内容可能不在一行,且过程中会存在多对,希望仅将/*与*/之间的内容屏蔽,其余部分保留,以原字符串如下为例:
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';
其中红色字段部分均希望在匹配的时候给屏蔽掉,请大神帮忙。。。谢谢。。
------解决方案--------------------
select regexp_replace(replace(字符串,chr(10),' '), '/\*.*\*/','',1,0,'m') from table;
先替换空格,再匹配注释,可以不