Markloigc:在fn中替换正则表达式:replace

时间:2015-05-20 07:48:23

标签: regex xquery marklogic

任何人都可以帮我解决如何在fn:replace()

中转义正则表达式

我的实际代码如下,

请求

let $x := "/SLR/[2009] 3 SLR(R) 0327.xml"
return
(
  fn:replace( $x, $x, "Expected Value")
)

响应:由于在。中有正则表达式术语,因此意外响应。

/SLR/[2009] 3 SLR(R) 0327.xml

如果我手动转义正则表达式,我会得到预期的结果。

请求

let $x := "/SLR/[2009] 3 SLR(R) 0327.xml"
return
(
  fn:replace( $x, "/SLR/\[2009\] 3 SLR\(R\) 0327.xml", "Expected Value")
)

回复

Expected Value

我的问题是我无法手动完成我拥有的1000个文件。

任何人都可以帮助我如何让它变得更容易吗?

1 个答案:

答案 0 :(得分:2)

functx库提供了一种方法:

functx:escape-for-regex('[abc]') \[abc\]

http://www.xqueryfunctions.com/xq/functx_escape-for-regex.html