【发布时间】:2021-09-20 09:39:02
【问题描述】:
我有一个字符串,比如let $baseString := "stringToReplace-Rem-aining-String"。我想运行条件测试
检查$baseString 是否包含"stringToReplace" 和"-",
if (fn:substring($baseString,1,15) = 'stringToReplace' and fn:matches($baseString, "(([-])+)")),
如果是这样,我想用'replacedString' 替换'stringToReplace' 和"-" 用""(空白),所以,输出字符串应该是replacedStringRemainingString。
如何在 xQuery 中实现这一点?
到目前为止,我已经完成了以下 2 个单独的代码块工作 - 但我需要以某种方式将这 2 个代码块组合在一起。而且我真的不明白我在这里使用 for 循环的原因,但这是我让这个代码块执行而没有错误的方式。
let $baseString := "stringToReplace-Rem-aining-String"
for $x in $baseString return
if (fn:substring($baseString,1,15) = 'stringToReplace' and fn:matches($baseString, "(([-])+)"))
then (fn:concat('replacedString',fn:substring($baseString,16,40)))
else ($baseString)
这给出了结果
replacedString-Rem-aining-String
和
let $baseString := "stringToReplace-Rem-aining-String"
for $x in $baseString return
if (fn:substring($baseString,1,15) = 'stringToReplace' and fn:matches($baseString, "(([-])+)"))
then (fn:replace($baseString, "(([-])+)", ""))
else ($baseString)
这给出了stringToReplaceRemainingString 的结果。
有什么想法吗?
【问题讨论】:
标签: if-statement replace match xquery