51代码网ORACLEMYSQLSQL SERVER其它数据库java/jspasp/asp.netC/C++/VC++APP应用其它语言服务器应用
您现在的位置: 51代码网 >> oracle >> 文章正文

用正则表达式匹配时,如何屏蔽掉过程中注释掉的部分

更新时间:2013-11-24:  来源:51代码网

用正则表达式匹配时,如何屏蔽掉过程中注释掉的部分

我需要在一串很长的字符串中匹配某固定字符串,但是希望将原字符串中/*与*/之间的内容屏蔽掉,不参与匹配,由于/*与*/之间的内容可能不在一行,且过程中会存在多对,希望仅将/*与*/之间的内容屏蔽,其余部分保留,以原字符串如下为例:

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  <SPAN style="COLOR: #ff0000">/*@   ****************************************************************   *参数 --%@PARAM:                V_DATE  'YYYYMMDD'   *参数 --%@PARAM:V_RETCODE       过程运行结束成功与否标志   *参数 --%@PARAM:V_RETINFO       过程运行结束成功与否描述   *备注 --%@REMARK:   *修改记录 --%@MODIFY:     *修改记录 --%@MODIFY:   ******************************************************************   @*/</SPAN>     V_ROWLINE   NUMBER := 0;   V_STARTTIME DATE;    V_LOG_SN    NUMBER; BEGIN  V_STARTTIME := SYSDATE;  <SPAN style="COLOR: #ff0000">  /* ZB_DIM.DIM_BI_AREA;   ZB_DIM.DIM_PROV */</SPAN> <SPAN style="COLOR: #ff0000">/* ZB_DIM.DIM_BI_PAY_MODE */</SPAN> 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;

先替换空格,再匹配注释,可以不

  • 上一篇文章:
  • 下一篇文章: 没有了
  • 赞助商链接
    推荐文章
  • 此栏目下没有推荐文章
  • {
    设为首页 | 加入收藏 | 友情链接 | 网站地图 | 联系站长 |