XPath / XQuery Regular Expression替换String模式

时间:2013-08-23 10:20:41

标签: regex oracle xpath

我跟随xml阅读:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE PROCESS_PO_007 SYSTEM "003_process_po_007.dtd">
<!-- Oracle eXtensible Markup Language Gateway Server  -->
<PROCESS_PO_007>
  <CNTROLAREA>..

我想用单个空格替换输入xml中的任何注释。我想用空格替换任何以及中间字符串开头的标签,例如

<!DOCTYPE PROCESS_PO_007 SYSTEM "003_process_po_007.dtd">应替换为'' 同样 <!-- Oracle eXtensible Markup Language Gateway Server -->应替换为''

我正在使用以下替换功能但未成功:

replace(tab.user_data.payload, '&lt;!.*?&gt;', ' ')

但这不起作用。

任何人都可以在这里建议我做错了什么。

1 个答案:

答案 0 :(得分:1)

如果您想使用正则表达式,则必须使用regexp_replace而不是replace,

select regexp_replace('<!-- Oracle ...  -->blub', '<!.*?>', ' ') from dual