0

我正在尝试使用替换功能在 Oracle Service Bus xquery 转换中用一个反斜杠替换两个反斜杠:

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

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

当我在例如 Altova XmlSpy 中调用相同的函数时,这工作正常:replace("^\\d{1,4}$", "\\\\", "\\") 导致 ^\d{1 ,4}

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

4

1 回答 1

2

这是一个错误。

您可以编写自定义正则表达式来解决此错误。

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)`
于 2012-08-04T11:40:33.710 回答