我正试图在带有替换函数的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)`