Oracle服务总线中的xquery替换问题



我正试图在带有替换函数的Oracle Service Bus xquery转换中用一个反斜杠替换两个反斜杠:

让$str:=replace($srcStr,"\\\\","\\"),其中$srcStr包含值"^\\d{1,4}$"

但由于某种原因,这并不奏效。结果仍然是"^\\d{1,4}$"

当我在例如Altova XmlSpy中调用相同的函数时,这很好:替换("^\\d{1,4}$","\\\","\\")会导致^\d{1,4}

有人知道为什么OSB与源字符串中的反斜杠不匹配吗?有什么解决办法?

这是一个错误。

您可以编写自定义regexp来解决此错误。

declare function xf:replace_test($e as element()) as xs:string {
    let $str := replace("junk () junk", ".*\.*", "$1")
    return $str
};
declare variable $e as element() external; 
xf:replace_test($e)`

最新更新