Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex fn:replace中的Markloigc:Escape正则表达式_Regex_Xquery_Marklogic - Fatal编程技术网

Regex fn:replace中的Markloigc:Escape正则表达式

Regex fn:replace中的Markloigc:Escape正则表达式,regex,xquery,marklogic,Regex,Xquery,Marklogic,有人能帮助我如何在fn:replace()中转义正则表达式吗 我的实际代码看起来像 请求 let $x := "/SLR/[2009] 3 SLR(R) 0327.xml" return ( fn:replace( $x, $x, "Expected Value") ) let $x := "/SLR/[2009] 3 SLR(R) 0327.xml" return ( fn:replace( $x, "/SLR/\[2009\] 3 SLR\(R\) 0327.xml", "Expe

有人能帮助我如何在fn:replace()中转义正则表达式吗

我的实际代码看起来像

请求

let $x := "/SLR/[2009] 3 SLR(R) 0327.xml"
return
(
  fn:replace( $x, $x, "Expected Value")
)
let $x := "/SLR/[2009] 3 SLR(R) 0327.xml"
return
(
  fn:replace( $x, "/SLR/\[2009\] 3 SLR\(R\) 0327.xml", "Expected Value")
)
响应:意外响应,因为其中包含正则表达式项

/SLR/[2009] 3 SLR(R) 0327.xml
如果手动转义正则表达式,则得到了预期的结果

请求

let $x := "/SLR/[2009] 3 SLR(R) 0327.xml"
return
(
  fn:replace( $x, $x, "Expected Value")
)
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个文件


有谁能帮我简化一下吗?

functx库提供了一种方法:

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

您确定需要正则表达式吗?您可以在这里检查子字符串。@karthik manchala谢谢您的建议,我实际上想替换xml名称。我认为fn:replace()对我来说是更好的选择。我用下面的解决方案得到了预期的输出。